Mohsens22

ناظم انجمن
  • تعداد ارسال ها

    62
  • تاریخ عضویت

  • آخرین بازدید

  • روز های برد

    21

آخرین بار برد Mohsens22 در 29 خرداد

Mohsens22 یکی از رکورد داران بیشترین تعداد پسند مطالب است!

اعتبار در سایت

83 فوق العاده

درباره Mohsens22

  • درجه
    کاربر ثابت
  • تاریخ تولد 1 مرداد 758

اطلاعات تماس

  • آدرس تارنما
    http://elektrosoft.net
  • یاهو
    spartanwebber
  • اسکایپ
    mohsens22
  • حساب مایکروسافت
    mohsens2@outlook.com
  • مرورگر
    Microsoft Edge
  • شماره تماس
    09199278128
  • تلگرام
    mohsens22

اطلاعات نمایه

  • جنسیت
    آقا
  • مکان
    زیر Initialize Component
  • علایق
    ویندوز ، اینترنت اشیا ، دیتا ، واقعیت افزوده
  • نام توسعه دهندگی
    Mohsens22
  • سیستم عامل کامپیوتر
    Windows 10
  • سیستم عامل موبایل
    Windows 10
  • موبایل
    Microsoft Lumia 535 Dual SIM

آخرین بازدید کنندگان نمایه

82 بازدید کننده نمایه
  1. یه سری به این تاپیک بزن رفع مشکلات ویژوال استودیو 2017 - آموزش ابزارها و نرم افزار ها - وین نو...
  2. دومین تمرین کد با EFCore در پلتفرم یونیورسال: تعیین پروژه : یک سیستم ساده، که کاربر بتواند دانش آموزان را ذخیره کند. ابتدا یک پروژه ی یونیورسال ساده میسازیم. داخل سولوشن، کلیک راست زده و از منوی Add new project گزینه ی ClassLibrarty(Windows Universal) را میزنیم(من نام Core را برای آن انتخاب کردم. بعد از انجام این کار، نیاز است که پروژه ی اصلی را به پروژه ی Core رفرنس دهیم. برای این کار در پروژه ی اصلی Add reference را زده و از قسمت Projects روی Core تیک بزنید. حال این دو پکیج را از طریق کنسول نوگت یا رابط گرافیکی نوگت روی پروژه ی Core نصب میکنیم: Install-Package Microsoft.EntityFrameworkCore.Sqlite Install-Package Microsoft.EntityFrameworkCore.Tools *نکته: نیاز است که پکیج Microsoft.NETCore.UniversalWindowsPlatform نسخه ی 5.2.2 به بالا باشد. داخل پروژه ی Core می رویم، حالا کلاس های انتیتی خود را میسازیم. کلاس انتیتی چیست و چرا میسازیم؟ در جواب باید بگویم که این کلاس ها، کلاس های ساده اند که به تیبل داخل دیتابیس و در داخل کد، قالبی برای مقادیر پایگاه داده خواهند بود. کلاس اول: Teacher.cs public class Teacher { public int ID { get; set; } public string Name { get; set; } } کلاس بعدی: student.cs public class Student { public int ID { get; set; } public string Name { get; set; } //Relation to Teacher public virtual Teacher Teacher { get; set; } } هممم .... در پراپرتی Teacher چه اتفاقی افتاد؟ در جواب باید بگویم که ما یک ریلیشن (رابطه) چند به یک در اینجا داریم. نیاز است که پراپرتی مورد نظر را virtual کنیم و سپس نوع آن را از نوع تایپی که به آن ریلیشن دارد؛ انتخاب کنیم. (البته این تمام ماجرا نیست) نکته در مورد ID : انتیتی فریمورک به صورت هوشمند روی کلمه ی ID حساسیت دارد و به صورت خودکار آن را پرایمری کی تعیین کرده و آنرا Auto increment میکند. البته میشود به راحتی این تنظیمات را شخصی سازی کرد. گرچه با Fluent API و اتریبیوت [key] قابل تعیین است. کار ما با کلاس ها تمام شد! حالا یک فایل کلاس ساخته و آن را Model.cs نامگذاری میکنیم. این کلاس را از DbContext ارث بری میکنیم. نیاز است که از فضای نامی Microsoft.EntityFrameworkCore; استفاده کنیم. حالا به ازای هر کلاس انتیتی، یک DbSet میسازیم و در آخر OnConfig را اورراید میکنیم. بدین ترتیب: public class Model : DbContext { public DbSet<Student> Students { get; set; } public DbSet<Teacher> Teachers { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite("Data Source=blogging.db"); } } حالا باید دیتابیس را مایگریت کنیم! مایگریت کردن به معنای مپ کردن کلاس ها به روی دیتابیس و یا تغییرات در آنهاست. پروژه را Rebuild کنید. اگر هنگام مایگریت کردن به مشکل خوردید، ویژوال استودیو را ببندید و با دسترسی Admin دوباره باز کنید. برای ایجاد یک مایگریشن، در Package manager این کد را بزنید: Add-Migration سپس کنسول از شما نام میخواهد، یک نام به دلخواه انتخاب کنید. بعد از آن در مسیر پروژه ی Core یک پوشه به نام Migration به وجود می آید که در آن کلاس ها و کد های مربوط به مایگریشن وجود دارد (میتوانید آن ها برسی کنید، ولی دستکاری نکنید ). حالا نیاز است که این مایگریشن، مایگریت شود. یعنی دیتابیس داخل دستگاهی که نرم افزار در آن اجرا می شود، ساخته و Map شود. اگر تغییرات وجود داشت، اعمال شود. این مایگریت در اپلیکیشن ها(مانند یونیورسال و زامارین) در ران تایم صورت میگیردو یعنی کدی مینویسیم که اگر مایگریشن اعمال نشده وجود داشت، اعمال کند. اما در انتیتی فریمورک در ASP.NET قبل از رانتایم باید مایگریت صورت بگیرد. برای مایگریت به پروژه ی اصلی بروید و در کانستراکتور App.Xaml.Cs این کد را اضاف کنید: //Core.Model is where your DbContext is located. using (var db = new Core.Model()) { db.Database.Migrate(); } *نکته: پس از هرگونه تغییر در کلاس های انتیتی، نیاز به ساخت مایگریشن جدید دارید. کار ما با ساخت و کافیگ دیتابیس تمام شد !!!! حالا برویم سراغ بقیه ی کار. کد گرفتن تمام داده های روی دیبی ست(تیبل): using (var db = new Model()) { //a gets all entities in databse. you can do what ever var a= db.Students.Include("Teacher").ToList(); } //you should add .include("Name of entity") for relations *نکته : کد .Include("Teacher") را باید بزنیم تا ارتباطات به انتیتی Teacher هم بتوانیم بگیریم. کد برای اینسرت کردن داده روی تیبل ها: using (var db = new Model()) { //std is a student object to add. better to say: var std = new student(); db.Students.Add(std); //WE should add this to confirm that we want to relate this Item to an existing one db.Entry(sdt.Teacher).State = EntityState.Unchanged; //then saves it db.SaveChanges(); } نکته: کد db.Entry(sdt.Teacher).State = EntityState.Unchanged; برای این است که تایید کنیم که آیتم Teacher یک مقدار موجود روی Teachers است. اگر این کار را نکنیم، یا انتیتی فریمورک مقدار جدید اضافه میکند و به آن لینک میکند، یا این که ارور می دهد. کد دیلیت کردن: using (var db = new Model()) { //student is an existing instance of student db.Remove(student); db.SaveChanges(); } کد دستکاری: using (var db = new Model()) { //Student is the object subject to change (Update) db.Students.Add(Student); db.Entry(Student).State = EntityState.Modified; db.Entry(Student.Teacher).State = EntityState.Unchanged; //We are about to say : Hey, EFCore! Our Student is changed, but The teacher is existing on DB. db.SaveChanges(); } *نکته : در خط db.Entry(Student).State = EntityState.Modified; ما سعی داریم به انتیتی فریمورک بگوییم که این آبجکت در دیتابیس وجود دارد و ما میخواهیم آن را تغییر دهیم. در غیر این صورت انتیتی فریمورک یک آیتم جدید به دیتابیس اینسرت می کند و به دلیل وجود آن آیتم در دیتابیس، به خطا می خوریم. * نکته: در خط db.Entry(Student.Teacher).State = EntityState.Unchanged; ما به انتیتی فریمورک میگوییم که طبق خط بالا آبجکت student عوض شده اما Teacher آن همچنان در دیبی ست(تیبل) Teachers وجود دارد. در نتیجه Teacher جدید نساز! یک کوئری ساده برای سرچ دانش آموز با ID : using (var db = new Model()) { //We want student(s) by the ID of 12 and we save it in variable a var a== db.Students.Where(x => x.ID == 12).Include("Teacher").ToList(); //Again that Include Teacher! } فایل سورس کد همین آموزش پیوست شد ! EntityCoreLearn.rar همچنین بنده قبلا یک پروژه با انتیتی فریموک کور نوشته ام که کد های آن را از این لینک میتوانید برسی کنید.
  3. با سلام دوباره، با اولین آموزش سریع پروژه محور انتیتی فریمورک کور در خدمت شما هستیم تعیین پروژه : ذخیره ی داده ها در دیتابیس با انتیتی فریمورک کور. به چه چیزی نیاز داریم ؟ -ویندوز 10 -ویژوال استودیو -آخرین ورژن ویندوز SDK پروژه ی جدید بسازید: -ویژوال استودیو را باز کنید، -File>New>Project... -از منوی C# گزینه ی Blank App (Universal Windows) را انتخاب کنید، نامی برایش تایین کنید و OK را بزنید. (من نام EFGetStarted.UWP را انتخاب کردم) Microsoft.NETCore.UniversalWindowsPlatform را به آخرین نسخه آپگرید کنید. انتیتی فریمورک کور به Microsoft.NETCore.UniversalWindowsPlatform نسخه ی 5.2.2 به بعد نیاز دارد! انتیتی فریمورک کور را نصب کنید! حال این دو پکیج را از طریق کنسول نوگت یا رابط گرافیکی نوگت روی پروژه ی Core نصب میکنیم: Install-Package Microsoft.EntityFrameworkCore.Sqlite Install-Package Microsoft.EntityFrameworkCore.Tools Model خود را بسازید! -Project ‣ Add Class... -برای کلاس جدید از نام Model.cs استفاده کنید -کد زیر را جایگزین کنید: using Microsoft.EntityFrameworkCore; using System.Collections.Generic; namespace EFGetStarted.UWP { public class BloggingContext : DbContext { public DbSet<Blog> Blogs { get; set; } public DbSet<Post> Posts { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite("Data Source=blogging.db"); } } public class Blog { public int BlogId { get; set; } public string Url { get; set; } public List<Post> Posts { get; set; } } public class Post { public int PostId { get; set; } public string Title { get; set; } public string Content { get; set; } public int BlogId { get; set; } public Blog Blog { get; set; } } } دیتابیس خود را بسازید! داخل کنسول نوگت این کد را بزنید که اولین مایگریشن را برای شما انجام دهد : Add-Migration MyFirstMigration داخل App.XAML.cs نیز این کد را بزنید: public App() { this.InitializeComponent(); this.Suspending += OnSuspending; using (var db = new BloggingContext()) { db.Database.Migrate(); } } نیاز است این فضای نامی ها را using کنید: using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; از Model استفاده کنید! داخل MainPage.xaml این کد ها را وارد کنید: <Page x:Class="EFGetStarted.UWP.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:EFGetStarted.UWP" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Loaded="Page_Loaded"> <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <StackPanel> <TextBox Name="NewBlogUrl"></TextBox> <Button Click="Add_Click">Add</Button> <ListView Name="Blogs"> <ListView.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Url}" /> </DataTemplate> </ListView.ItemTemplate> </ListView> </StackPanel> </Grid> </Page> و داخل MainPage.xaml.cs : public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); } private void Page_Loaded(object sender, RoutedEventArgs e) { using (var db = new BloggingContext()) { Blogs.ItemsSource = db.Blogs.ToList(); } } private void Add_Click(object sender, RoutedEventArgs e) { using (var db = new BloggingContext()) { var blog = new Blog { Url = NewBlogUrl.Text }; db.Blogs.Add(blog); db.SaveChanges(); Blogs.ItemsSource = db.Blogs.ToList(); } } } حالا نرم افزار را اجرا کنید تا در عمل کار را مشاهده کنید: *نکته: امکان دارد موقع اجرای اولیه ی پروژه های انتیتی فریمورک ویژوال استودیو ارور دهد، در صورت ارور، دوباره پروژه را بیلد و اجرا کنید. لینک پروژه ی همین آموزش منبع : مایکروسافت
  4. با سلام و عرض ادب و احترام خدمت شما. امروز با آموزش اولیه ی انتیتی فریمورک کور در خدمت شما هستیم. در این آموزشی شما : با مفاهیم پایه ای ORM و انتیتی فریمورک آشنا خواهید شد + با یک آموزش پروژه محور، راه اندازی انتیتی فریمورک کور و عملگر های اصلی آن را فرا خواهید گرفت. همانطور که می دانید، انتیتی فریمورک یک نوع ORM است. (از نظر خودم بهترین ORM) که اجازه ی ارتباط و مدیریت دیتابیس را در اختیارتان قرار می دهد. انتیتی فریمورک کور همان انتیتی فریمورک است که به صورت فراپلتفرمی اجرا شده است. این ORM میتواند در پروژه های دات نت فریمورک، زامارین، دات نت کور، ویندوز اپلیکیشن و ... روی هر پلتفرمی اجرا شود! ORM چیست؟ ORM (Object Relational Mapping) یک لایه مترجم بین زبان برنامه‌نویسی و پایگاه داده رابطه‌ای است که این دو را به هم تبدیل می‌کند و در عمل باعث می‌شود که این دو حیطه کاملا متفاوت زبان یکدیگر را به خوبی بشناسند و با هم تبادل اطلاعات داشته باشند. یک ORM قوی ، برنامه را از نوع پایگاه داده استفاده شده، جدا می‌کند. این کار باعث می‌شود که استقلال نسبت به نوع پایگاه داده حفظ شود. ORM ارتباط های دایمی و احتمالا پیچیده با پایگاه داده را انجام می دهد و نیازی به انجام اعمال تکراری وکد نویسی هایی تکراری توسط برنامه نویس در هر بار ذخیره فیلد و رکورد جدید و بازیابی اطلاعات و...نیست.از طریق ارتباطی که بوسیله ORM بین اشیاء و پایگاه داده ایجاد می شود می توان اطلاعات اشیاء را با صدا زدن یک متد در پایگاه داده ی خود ذخیره کنید. این ساده سازی که توسط ORM فراهم می شود باعث میشودبا کدهای کمتری کارهایی نظیر بازیابی اطلاعات را انجام دهیم وبعدها اگه خواستیم تغییراتی اعمال کنیم به راحتی بتونیم بازسازی وتغییرش بدیم. ORM محدود به هیچ زبان خاصی نیست و تنها یک تکنیک و سیستم است که می تواند در زبانهای مختلف پیاده سازی شود . چند نوع ارتباط اولیه با دیتابیس داریم؟ 1-Database First:در این روش ابتدا دیتابیس طراحی و پیاده سازی می شود و بعد از آن انتیتی فریمورک به وسیله ی ویزارد، کلاس ها و موارد دیگر ارتباط با دیتابیس را می سازد. 2-Model First: در این روش ابتدا به وسیله ی کلاس دیاگرام، مدل برنامه طراحی می شود و انتیتی فریمورک با آن دیتابیس و کلاس ها و موارد دیگر را می سازد. 3- Code First: در این روش ابتدا کلاس ها و منطق ابتدایی برنامه نوشته میشود، سپس با انتیتی فریمورک این کلاس ها و آبجکت ها به صورت فیلد ها و رکورد های دیتابیس در میاورد. در این روش برنامه نویس فقط وظیفه ی کد نویسی را دارد و این ORM است که دیتابیس را ساخته و آن را مدیریت میکند. در انتیتی فریمورک فقط اتصال اولیه ی دیتابیس راه های مختلف دارد اما از اینجا به بعد، همه چیز یکسان است. مفاهیم پایه ای: انتیتی(Entity): انتیتی یک کلاس ساده است که پس از فرایند مایگریت به جدول های دیتابیس تبدیل می شود. همچنین این کلاس ها در ارتباط کد فرست با دیتابیس مارا یاری خواهند کرد. DbSet: یک کالکشن در حافظه که مقادیر دیتابیس را در خود دارد. با کوئری های Linq میتوانیم به آن دسترسی داشته باشیم و اعمال add(inset),Delete,Update,Select را در آن انجام دهیم. مایگریتشن(Migration): فرایندی که ORM انتیتی ها را به کد های ساخت و یا تغییرات دیتابیس تبدیل می کند. مایگریت(Migrate): اجرای دستورات مایگریشن و اعمال تغییرات و یا ساخت دیتابیس. در ادامه به صورت پروژه محور با انتیتی فریمورک کور (به صورت Code First) آشنا خواهیم شد.
  5. با سلام اواخر سال 95 نسخه ی نهایی ویژوال استودیو2017 عرضه شد که دارای باگ ها و مشکلات عجیب و غریبی بود. هنوز هم بعد از آمدن تعداد زیادی آپدیت کوچک، باز هم مشکلاتی دارد. در ادامه با چند مشکل بسیار پیش آمده در ویژوال استودیو را به همراه راه حل برسی خواهیم کرد. 1-نصب: مشکلات گرفتن پکیج به صورت آفلاین: وقتی که شما تلاش به گرفتن پکیج ویژوال استودیو به صورت آفلاین میکنید، ممکن است با مشکلاتی همراه شوید(پکیج کامل حدود 21-23 گیگ است). برای گرفتن پکیج آفلاین ویژوال استودیو پیشنهاد می شود از یک اینترنت پر سرعت به همراه VPN استفاده شود. 2-نصب: نصب پکیج آفلاین: امکان دارد که موقع نصب پکیج آفلاین با مشکلاتی روبرو شوید. این مشکلات معمولا به صورت Error آخر نصب نمایان می شوند و بدون Repair و Modify شما قادر به باز کردن ویژوال استودیو نخواهید بود. دلیل این مشکل میتواند کامل نبودن پکیج آفلاین یا آپدیت نبودن آن پکیچ باشد. پیشنهاد می شود هنگام نصب VPN و اینترنت پرسرعت داشته باشید تا پکیج های مشکل دار به صورت آنلاین نصب شوند. گرچه بعد از نصب با Modify و سپس Repair مشکلتان حل خواهد شد. 3-نصب: گیر کردن روی یک پکیج خاص: فی الواقع دلیل اصلی رخ دادن این مشکل را نمیدانم، ولی حدس میزنم عدم توانایی ویژوال استودیو در دپلوی کردن برخی پکیج ها دلیل این مشکل باشد. گزارش شده است که در برخی پکیج ها که به صورت استند الون نصب شده اند و یا از نصب نسخه ی قبلی ویژوال استودیو باقی مانده اند، در نصب به مشکل می خورند. لذا به پاک کردن آن پکیج ها اقدام کنید. در غیر این صورت حدود 6 ساعت صبر کنید تا مطمئن شوید که نصب جلوتر نمیرود. بعد از آن Task manager را باز کنید بخش Details دنبال آیتم VSinstaller باشید. روی آن کلیک راست کنید و Analyze waiting chain و پایین ترین گزینه در نمودار درختی را EndTask کنید. اگر چیزی پیدا نکردید، نصب ویژوال استودیو را لغو کنید. 4-نصب: عدم توانایی در لغو مراحل install: راه حل این است که Task manager را باز کنید بخش Details دنبال آیتم VSinstaller باشید. روی آن کلیک راست کنید و Analyze waiting chain و پایین ترین گزینه در نمودار درختی را EndTask کنید. اگر چیزی پیدا نکردید، کل پراسس VSinstaller را EndTask کنید. 5-نصب: عدم توانایی در گرفتن برخی پکیج ها: برخی پکیج ها مانند JDK, Android SDK,NDK و برخی دیگر از پکیج ها به دلیل تحریم در دسترس نیستند. لذا برای نصب آنها نیاز به VPN داریم. 6- بعد از نصب: عدم توانایی در باز کردن ویژوال استودیو: دلیل این مشکل؛ نصب ناقص پکیج های ویژوال استودیو است. این مشکل با Rapair و Modify درست می شود. 7-بعد از نصب: مشکلات اکتیویشن: اگر ویژوال استودیو از شما کد اکتیویشن میخواهد این ها را امتحان کنید Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Professional: KBJFW-NXHK6-W4WJM-CRMQB-G3CDH 8-هنگ و کرش در پروژه های زامارین (و بقیه ی پروژه های Third Party): دلیل این هنگ و کرش این است که ویژوال استودیو فایل های مربوطه به این پروژه ها را پیدا نمیکند. لذا بعد از Reapir و Modify و گرفتن تمامی پکیچ ها و دیپندنسی های لازم، نیاز است از نصب صحیح پکیج ها(حاوی SDK ها Runtime ها و ...) اطمینان حاصل کنیم. مشکلی که برای شخص بنده به وجود آمده بود، Android SDK و NDK در پوشه ی مخصوصش نبود که با انتقال به آن پوشه مشکل برطرف شد. 9- هنگ در کار با دیزاینر : این مشکل یکی از اذیت کننده ترین باگ های ویژوال استودیو 2017 است. اما راه حل این است که کمی صبر کنید، اگر مشکل برطرف نشد Task manager را باز کنید بخش Details دنبال آیتم DevEnvباشید. روی آن کلیک راست کنید و Analyze waiting chain و پایین ترین گزینه در نمودار درختی را EndTask کنید. نکته این است که دیزاینر کرش کرده و بلا استفاده خواهد شد. پس نیاز است آن را reload کنیم. 10-اکسپشن در ویژوال استودیو در هنگام تغییر یک پراپرتی از نوع Thickness یا استایل و تمپلیت های پیچیده در زمل به صورت لایو: سعی کنید این کار را نکنید! ولی در صورت بروز این مشکل گاها زدن دکمه ی Continue میتواند مشکل را رفع کند. اما در اکثر موارد نرم افزار کرش می کند و شما نیاز دارید اپلیکیشن را دوباره بیلد بگیرید. 11-بروز مشکل استفاده از فایل pdb آفلاین(سیمبل) در .NET Native یا Mixed دیباگ: راه حل مشخصی برای این مشکل وجود ندارد، لذا سعی کنید سیمبل های دیباگ را به صورت آنلاین دریافت کنید. 12- مشکل در گرفتن پکیج از نوگت: ابتدا لینک نوگت را از تنظیمات نوگت چک کنید. یکی ازین دو سرور باید ست شده باشد(V3 پیشنهاد می شود) https://api.nuget.org/v3/index.json https://www.nuget.org/api/v2 اگر با تصحیح سرور ها باز هم مشکل پابرجا بود، با VPN امتحان کنید.(خاموش روشن کردن مودم فراموش نشه) اگر باز هم به مشکل خوردید، VPN را باز کنید، نرم افزار Fiddler را هم باز کنید، روی WinConfig کلیک کنید، سپس روی Exempt all کلیک کنید و در نهایت Save Changes با بزنید. مشکلتان برطرف خواهد شد. 13-مشکلات ایمولیتور (بیشتر مشکلات مربوط به اندروید است) در نصب نرم افزار و یا اتصال به اینترنت: این مشکل اغلب به دلیل بروز ایراد در HyperV Vethernet به وجود می آید که با دستکاری تنظیمات HyperV قابل حل است. در این تاپیک و این تاپیک در مورد این موضوع بحث شده و راه حل هایی ارائه شده است. 14-مشکلات و ارور های عجیب و غریب هنگام بیلد: گاها پیش می آید که با وجود این که کد صحیح نوشته شده، باز هم ارور میخوریم. برای حل این مشکل شما باید ویژوال استودیو را بسته و فایل های از قبل کامپایل شده را پاک کنید. در پروژه های سی شارپ این فایل ها در پوشه های Obj و Bin اند و در پروژه های C++ معمولا در داخل پوشه های Generated files, ARM,X64,X86 اند که شما باید نسبت به پاک کردنشان اقدام کنید.اگر موفق به حذف فایل ها نشدید(خطای فایل در حال استفاده و ...) گرفتید، دستگاه را ری استارت کنید. بعد از آن پروژه را Rebuild کنید. شما در ویژوال استودیو چه مشکلاتی دارید؟ زیر همین پست مشکلاتتان را با ما در میان بگذارید
  6. 1- بله میتونید روی ایمولیتور اندروید ویژوال استودیو بریزید، ولی متاسفانه گویا بعد از هر ریلانچ ایمولیتور؛ نیازه که دوباره نصب بشه. برای این مشکل پیشنهاد میشه که از یه ایمولیتور اندروید دیگه مثلا Remix OS استفاده بشه. 2و3-ایمولیتور نباید روی بحث اینترنت مشکل داشته باشه (امکانش هست روی دیپلویمنت اپ اندروید روی ایمولیتور اندروید به مشکل بخورید که براش راه حل هست) اگه ایرادی توی زمینه ی اتصال به اینترنت پیش بیاد، احتمال فراوان از HyperV Vethernet ها است. حتما اتصالات و تنظیماتش چک بشه.
  7. با سلام و آرزوی قبولی طاعات و عبادات، امروز قصد معرفی و آموزش couchbase NoSQL را داریم. در ابتدا سوال که مطرح می شود این است که اصلا دیتابیس NoSQL چیست، کجا استفاده می شود و چرا باید استفاده شود. نو اس کیو ال، یک نوع پایگاه داده ی غیر رابطه ای می باشد که داده ها اغلب به صورت Document هایی حاوی Key:Value ذخیره می شوند. NoSQL ها معمولا بسیار سریع اند، قابلیت ذخیره ی ترابایت ها داده را دارند، به دلیل رابطه ای نبودن بسیار انعطاف پذیر اند و به دلیل اسکیما فورس نبودن بسیار توسعه پذیر (scalable) هستند. نو اس کیو ال نوع جدید و متفاوتی از پایگاه داده می باشد و برای یادگیری صحیح آن نیاز است که کمی از تفکرات بسیار منطقی و اسکیما فورس SQL و رابطه ای دور شویم و به ذخیره ی Json Document ها فکر کنیم. (به شخصه زیاد شده برای کار های خاص آبجکت جیسون سریالایز شده رو ذخیره کنم) نکته ی مهم این است که NoSQLجایگزین برای دیتابیس های رابطه ای نیست! بلکه راه حلی است برای مشکلات، چالش ها و موارد خاص در حوضه ی ذخیره ی دیتا. couchbase چیست؟ کوچ بیس یک دیتابیس NoSQL اوپن سورس با امکانات عالی می باشد. من جمله ی این امکانات می توان به: پشتیبانی از اکثر سیستم عامل ها، زبان های برنامه نویسی و فریمورک های مطرح و پر استفاده، وجود یک زبان شبه SQL برای امر کوئری، سرعت بالا، امکانات مدیریتی ساده و اما غنی، راه حل های بسیار خوب برای multi node cluster و بسیاری دیگر. اما نکته ی بسیار جالب درمورد couchbase (که دلیل این که من رو به خودش جذب کرد، همین بود) پشتیبانی از دستگاه های موبایل(!!!) و وجود سینک گیت وی بود. couchbase server دیتابیس کوچ بیس برای سرور است که برای سیستم عامل های ویندوز، لینوکس و مک ارائه شده. مدیریت این دیتابیس از سه روش 1-کنسول مدیریتی 2-REST API و 3-SDK هایی که برای زبان های برنامه نویسی مختلف ارائه شده (من جمله سی شارپ دات نت) قابل انجام است. couchbase lite یک کتابخانه ی کوچ بیس برای دستگاه های موبایل است! که با آن میتوان داده ها را داخل دیتابیس NoSQL داخل موبایل ذخیره کرد (جایگزین برای SQLite). این کتابخانه از اندروید، آی او اس، ویندوز(وین 32) و زامارین پشتیبانی میکند. (خبر خوب) از نسخه ی 2.0 (که درحال توسعه است) پشتیبانی از ویندوز یونیورسال هم اضافه شده است. نسخه ی 2.0 نسبت به نسخه ی عرضه شده ی فعلی بهبود ها و تغییرات بسیار زیاد و بنیادینی را به خود دیده است. همچنین میتوان داده های آن را با کوچ بیس سرور و سینک گیت وی به وسیله ی ابزار داخل کتابخانه و یا REST API سینک کرد. couchbase sync-gateway یک ابزار تحت وب است که با آن میتوان داده های داخل دیتابیس را با دستگاه های دیگر سینک کرد.الگوریتم سینک بسیار پیاده سازی سختی دارد، اما سینک گیت وی تمام این کار های سخت را برایتان انجام خواهد داد. سینک گیت امکان وی مدیریت یوزر، مدیریت کانفلیکت، مدیریت سینک، آفلاین فرست\آنلاین فرست (ریل تایم) سینک، سینک از طریق REST API ، سینک تحت شبکه (P2P sync) و بسیاری دیگر را به شما خواهد داد. کوچ بیس لایت در عمل: در این_لینک میتوانید داکیومنت های بیشتری را در مورد پیاده سازی کوچ بیس پیدا کنید. گرچه در روز های آتی، درصورت درخواست، آموزشی های اختصاصی تهیه خواهد شد. موید باشید
  8. اس دی کا رو ازین_آدرس میتونی گیر بیاری. اما فکر کنم به پیش نمایش ویندوز رد استون 3 هم نیاز داشته باشی.
  9. اس دی کای 16xxx رو لازم داره. مطمعنی که 15063 نیست ؟
  10. باید ازSDK ی پیش نمایش رد استون 3 استفاده کنی. یه سرچ بزنی، پیدا میشه. البته اگه اس دی کا رد استون 2 داری و نمیخوای از اون API ها استفاده کنی ولی رابط فلوئنت میخوای یه سری به Windows UI Dev Labs و این_آموزش بزن.
  11. با سلام من یک یوزر کنترل ساخته ام حاوی سه تکست بلاک. در کد بیهایند هم دو دپندنسی پراپرتی از نوع int وجود دارد که تکست بلاک اول و دوم از آن بایند میکند. ​اگر بخواهیم که تکست بلاکمان مساوی با حاصلضرب دو دپندنسی پراپرتی فوق باشد چه کنیم؟
  12. با سلام همانطور که میدانید مایکروسافت هم اکنون روی زبان طراحی جدیدی به نام نئون کار میکند که گرچه به صورت رسمی معرفی نشده است، اما چیز های زیادی از آن لو رفته است. امروز با آموزش پیاده سازی این زبان بر روی اپلیکیشن های یونیورسال در خدمت شما هستیم. نکته : ​این روش بر روی اپلیکیشن برین استودیو که اولین اپلیکیشن نئون موجود در استور است تست شده ​نکته 2: برای اجرای این رابط به بیلد رد استون 2 به بعد و برای توسعه نیاز به اس دی کی رد استون 2 نیار خواهید داشت. ابتدا این سمپل را بگیرید و اما روش پیاده سازی: ابتدا دو پروژه ی "SamplesNative" و "SamplesCommon" را به سولوشن خود اد میکنیم و پروژه ی خود را به آنها رفرنس میدهیم. سپس دو فایل موجود در پوشه ی Assets که در سمپل وجود دارد به نام های Noise.png و Noise.jpg را به پوشه ی Assets پروژه ی خود اضافه میکنیم. بعد از آن نیاز است ایمیج لودر را اینیشالایز کنیم. پس به کانستراکتور پیج اصلی میرویم و زیر اینیشالایز کامپوننت کد زیر را مینویسیم. ImageLoader.Initialize(ElementCompositionPreview.GetElementVisual(this).Compositor); و تقریبا تمام. ​حالا هرجا نیاز به رابط نئون داشتیم از کنترل های مورد نیاز استفاده میکنیم. مثال: xmlns:Neon="using:SamplesCommon" <Neon:HostBackDrop BlurAmount="30" /> در این کتابخانه کنترل های بسیاری وجود دارد. من جمله HostBackDrop که برای بلر کردن ویندوز استفاده میشود، BackDrop که برای بلر کرد اجزا در زمل استفاده می شود و مابقی کنترل ها که در Windows UI Dev Labs توضیح داده شده است. موید باشید
  13. با تشکر.
  14. یه نمونه کد میتونی لطف کنی ؟
  15. با سلام سوال داشتم در مورد یوزر کنترل. بنده داخل یوزر کنترلم یک گرید دارم که میخوام Children هاش بایند بشه به Children هایی که بهش میفرستیم. مثال : اگه داخل یوزر کنترل داشته باشیم <UserControl x:Class="MyApp.Controls.Ctrl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:MyApp.Controls" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="60" d:DesignWidth="500" > <Grid > </Grid> </UserControl> وقتی که میخواهیم از این یوزر کنترل استفاده کنیم : <local:ctrl > //چیز هایی که میخواهیم بفرستیم تا در آن گرید به عنوان چیلدرن نمایش داده بشوند </local:ctrl> ​چطور باید این کارو رو انجام بدیم ؟ با تشکر.