تمامی فعالیت ها

این جریان به طور خودکار بروز می شود   

  1. امروز
  2. دیروز
  3. @sab2020 مطمئن شو که Microsoft.EntityFrameworkCore.Tools رو توی پروژه ای که توش DbContext هست نصب کرده باشی اگر ارور خاصی میده بفرست تا نظر بدیم
  4. c#

    سلام این آموزش : https://docs.microsoft.com/en-us/windows/uwp/launch-resume/handle-file-activation این هم نمونه ای که @Ramtin گفت : Windows-universal-samples/Samples/AssociationLaunching at master · Mic...
  5. c#

    سلام، به این کار File Association میگن. توی برنامه های تحت دسکتاپ باید در رجیستری این کار رو انجام داد که برنامه باید دسترسی ادمین (Run As Admin) داشته باشه. خوشبختانه توی UWP زیاد کاری نمیخواد انجام داد! برای اینکار کافیه یک Declaration از نوع File Type Associations ایجاد کنید و فرمت هایی که می خواهید رو بنویسید. سپس باید در فایل App.xaml.cs تابع OnFileActivated رو بازنویسی کنید و فایل هایی که با برنامه شما باز میشن رو هندل کنید. اگه اشتباه نکنم شما فقط یک آیکون می تونید برای این فایل ها بذارید. کلا کاریه که پلیرها انجام میدن. ساده شده میتونید پروژه AssociationLaunching رو در سمپل های مایکروسافت نگاه کنید. اگه نیاز به آموزش داشتید بگید تا بذارم. موفق باشید.
  6. c#

    سلام، ولی توی این سایت ها نوشته که UWP هست: Windows 10 UWP version of Adobe Experience Design CC app due in 2016 |... Adobe XD hits Windows 10 as a public beta | Windows Central Adobe XD is coming to Windows 10 as a UWP app by the end of 2016
  7. هفته گذشته
  8. با سلام، یه سری نکات هست که بطور تجربی بدست آوردم و میتونه تو جلوگیری از خطا ها و دولوپ سریع تر کمکتون کنه. >> بعد از راه اندازی محیط برنامه و نصب sdk و ndk و jdk که مورد نیازه برای اندروید در زامارین سعی کنید ارتباط با اینترنت را همراه با وی پی ان داشته باشید، چون ممکنه سیستم به یک سری فایل نیاز پیدا کنه که باید از گوگل دانلود کنه که متاسفانه ایران تحریم هست ولی درصورت نداشتن وی پی ان می شود این فایل هارو بصورت دستی اضافه کرد. دقت داشته باشید که ورژن نوگت ها یا کامپوننت های Support گوگل باید مطابق با ورژنی که پروژه را برای آن اندروید کامپایل میگیرد باشد، نه جدیدترین آن. وقتی ورژن هدف کامپایل پروژه رو مثلا 6 در نظر میگیرید اصلا نگران اجرا شدنش روی ورژن های پایین تر در قدم نخست نباشید (4.1) و ابزار ها و دسترسی های مخصوص برای این موضوع مهم است. هیچ وقت مانند ویندوز یونیورسال تنظیمات خروجی برنامه رو بدون اطلاعات کامل تغییر ندهید، ممکن است باعث مشکل در آینده شود. نسخه دیباگ در حالت پیشفرض روی دیوایس واقعی کار نمیکند و نسخه ریلیسیس هم بر عکس. طبق عادت مانند برنامه نویسی ویندوز برای سبک شدن یا برطرف شدن ارور ها فولدر object و bin را پاک نکنید.
  9. c#

    Adobe XD که در اصل یونیورسال نیست، ولی تو پی سی به طور پیش فرض درصورتی که فایل با اپ شما باز بشه، آیکون اپ بر روی فایل قرار میگیره
  10. #سوال قسمتی که گفته بودی "داخل کنسول نوگت این کد را بزنید که اولین مایگریشن را برای شما انجام دهد : " انجام نمیشود .
  11. c#

    با سلام، چگونه میتونم برای فرمت خاصی از فایل ها (برای مثال .winnevis) آیکون خاصی رو بزارم در UWP؟ آیا کلا این امکان وجود دارد؟ اگر وجود دارد برای موبایل هم کار خواهد کرد؟ برای مثال اپلیکیشن Adobe XD که یونیورسال هست و فرمت های .xd با ایکون خاصی به انتخاب این نرم افزار نشان داده میشوند.
  12. c#

    با سلام، من میخواستم که در لاک اسکرین عدد یا اگه بشه متنی رو نشون بدم، چطور میتونم اون کار رو انجام بدم؟ توی سمپل های مایکروسافت یک سمپل در مورد این بود که از کدهاش سر در نیاوردم. حتی با سرچ کردن هم نتونستم این کار رو انجام بدم. (مثل اینکه اسمش LockScreen Badge Notification هست.)
  13. شروع برنامه نویسی برای گوشی های آیفون روش های مختلفی دارد، که یکی از آنها استفاده از زامارین و زبان سی شارپ است. این روش هم مانند روش های دیگر دردسر های خود را برای شروع دارد مخصوصا برای افرادی که سیستم مک (مک بوک یا ...) ندارند. در این آموزش سعی شده سریع ترین و بهترین روش برای شروع کار به شما یاد داده شود. چگونه macOS Sierra 10.12 را بر روی VirtualBox نصب کنیم ؟ در # مرحله اول VirtualBox را از این لینک دریافت کرده و سپس به راحتی و با زدن چند دکمه بعدی نصب کنید. # مرحله دوم فایل ویرچوال باکس که شامل مک او اس آماده شده هست را دریافت کنید و در پوشه و درایوی که به اندازه کافی (بالای 50 گیگ) جا دارد استخراج (Extract) کنید. #مرحله سوم یک ماشین مجازی جدید ایجاد کنید: (با تنظیمات زیر) تنظیم نام، نوع و ورژن مطابق شکل تنظیم 4 گیگ رم در مرحله بعدی انتخاب ماشین مجازی موجود و سپس انتخاب فایل استخراج شده در مرحله قبل تغییر تنظیمات در بخش سیستم > مادربورد، غیر فعال کردن فلاپی و تنظیم چیپست ICH9 مطابق شکل انتخاب 2 هسته فعال تنظیم 128 مگ رم گرافیک تنظیم آداپتور نتورک مطابق شکل #مرحله پنجم کد ها ویرچوال را وارد CMD کنید. CMD را در حالت administrator اجرا کنید و کد های موجود در فایل زیپ را دونه به دونه در کامند پیست کرده و اینتر را بزنید. # مرحله ششم اجرای ماشین مجازی قبل از اجرای ماشین مجازی به این نکته دقت کنید که hyper-v در سیستم شما روشن نباشد. در صورت اینکه به این سیستم نیاز دارید میتوانید با روش زیر این کار را انجام دهید. < داشتن همزمان hyper-v و سیستم های موازی دیگر در یک کامپیوتر: برای این کار C:\>bcdedit /copy {current} /d "No Hyper-V" The entry was successfully copied to {ff-23-113-824e-5c5144ea}. C:\>bcdedit /set {ff-23-113-824e-5c5144ea} hypervisorlaunchtype off The operation completed successfully. را در CMD , Administator اجرا کنید. دقت کنید که کدی را که در مرحله اول میدهد را در مرحله دوم وارد کنید. در صورت ری استارت کردن کامپیوتر با این صفحه روبرو میشوید که می توانید هایپر وی را غیر فعال کنید. > ماشین مجازی رو اجرا کرده و منتظر بمانید که ستاپ مک نمایان شود. مطابق شکل های زیر ستاپ را کامل کنید. حالا نوبت به راه اندازی ابزار های برنامه نویسی میرسه. 1- نصب XCode : شما میتوانید ایکس کد را از این لینک یا استور دانلود و به راحتی نصب کنید. (ورژن 8 به بالا) 2- نصب ویژوال استادیو مک: visual studio 2017 mac که میتوانید از سایت خود مایکروسافت دریافت کنید و قسمت های مورد نیاز خود را نصب کنید. تصویر محیط برنامه نکات مهم : > توصیه میشود از ورژن های قبلی زامارین استفاده نکنید زیرا ورژن های آخر مک اجازه دسترسی به فایل های سیستم را نمیدهد و زامارین در موقع کامپایل به مشکل بر میخورد. >برای انتقال فایل بین ویندوز و مک، شیر ویندوز را فعال کرده و در سیستم عامل مک قسمت Finder > Go > Connect to server آی پی ویندوز را زده و به فایل های شیر دسترسی داشته باشید. با آرزوی موفقیت و تولید اپ های بیشتر و با کیفیت ایرانی.
  14. یه سری به این تاپیک بزن رفع مشکلات ویژوال استودیو 2017 - آموزش ابزارها و نرم افزار ها - وین نو...
  15. دومین تمرین کد با 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 همچنین بنده قبلا یک پروژه با انتیتی فریموک کور نوشته ام که کد های آن را از این لینک میتوانید برسی کنید.
  16. نصب آفلاین شبیه ساز اندروید 6 برای Visual Studio Emulator for Android با سلام . همانطور که میدانید در نسخه های جدید ویژوال استدیو (فکر میکنم ویژوال استدیو 2015 به بعد) یک شبیه ساز اندروید به این ابزار قدرت مند اضافه شده که به شما امکان تست برنامه ها را بدون نیاز به دیوایس فیزیکی اندروید میدهد . این شبیه ساز بسیار روان ، سبک و کم حجم بوده و بدون شک به شدت با ویژوال استدیو هماهنگی دارد . در صورتیکه از این شبیه ساز ها استفاده میکنید میدانید که میتوانید پروفایل های دیگری را نیز دانلود نمائید تا از شبیه ساز های اندروید های جدید تر برای تست برنامه های خود استفاده کنید . در اینجا لینک جدید ترین پروفایل را قرار میدهم تا بدون نیاز به دانلود بتوانید از امولاتور های آن استفاده نمائید . Android M (Marshmallow / 6.0 / API 23) لینک دانلود پروفایل پس از دانلود فایل msi را اجرا کرده و منتظر پایان نصب آن بمانید . پس از نصب پروفایل در کرتانا (استارت) عبارت Visual studio emulator for android را جستجو کنید و برنامه را اجرا کنید . حال از قسمت مشخص شده پکیج دانلودی خود را انتخاب کنید یعنی Marshmallow API 23 سپس از بین شبیه ساز های موجود هر یک که میخواهید به سلیقه خود انتخاب و نصب نمائید حال بدون نیاز به دانلود امولاتور شروع به نصب خواهد نمود. نکته : بهتر است از شبیه ساز های با سایز صفحه و رزولوشن پائین تر استفاده نمائید که هم سریع تر و روان تر اجرا شود و هم به صورت پیشفرض با سایز صفحه سیستم شما هماهنگ باشد و نیاز به تغییر زوم شبیه ساز نباشد این آموزش برای اولین بار و به صورت اختصاصی در اینجا منتشر میشود ، کپی برداری از این مطلب با ذکر منبع و نویسنده بلامانع است . باتشکر
  17. با سلام دوباره، با اولین آموزش سریع پروژه محور انتیتی فریمورک کور در خدمت شما هستیم تعیین پروژه : ذخیره ی داده ها در دیتابیس با انتیتی فریمورک کور. به چه چیزی نیاز داریم ؟ -ویندوز 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(); } } } حالا نرم افزار را اجرا کنید تا در عمل کار را مشاهده کنید: *نکته: امکان دارد موقع اجرای اولیه ی پروژه های انتیتی فریمورک ویژوال استودیو ارور دهد، در صورت ارور، دوباره پروژه را بیلد و اجرا کنید. لینک پروژه ی همین آموزش منبع : مایکروسافت
  18. با سلام و عرض ادب و احترام خدمت شما. امروز با آموزش اولیه ی انتیتی فریمورک کور در خدمت شما هستیم. در این آموزشی شما : با مفاهیم پایه ای 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) آشنا خواهیم شد.
  19. آموزش برنامه نویسی با Xamain.Forms قسمت سوم : ساخت اولین پروژه (ماشین حساب) از منوی ساخت پروژه جدید ویزوال استدیو به قسمت مشخص شده بروید و یک پروژه جدید با نام دلخواه بسازید . توجه داشته باشید از اسامی بسیار کوتاه استفاده کنید یا آدرس محل ذخیره سازی پروژه را به محلی مانند C:\XamFormProjs تغییر دهید چون در غیر اینصورت در حین بیلد کردن پروزه و ساخت خروجی به خطاهای بسیار زیادی از جمله طولانی شدن آدرس یک فایل بر خواهید خورد که مجبور به تغییر نام پوشه یا انتقال آن به محلی دیگر هستید ! (خلاصه پیشگیری بهتر از درمانه !) سپس با زدن کلید OK پنجره ی دیگری که برای شما باز میشود به صورت پیشفرض روی حالت Xamarin Forms و Blank App تنظیم شده که آن ها را بدون تغییر باقی بگذارید . گزینه code sharing strategy نیز به این اشاره دارد که پروژه مشترک بین هر سه سیستم عامل از نوع کلاس پرتابل باشد یا Shared project که از نوع پیشفرض یعنی Shared Project استفاده مینمائیم و ok را میزنیم تا پروژه ساخته شود . در حین ساخت پروژه ممکن است سوالاتی در ارتباط با Minimum os version و Target platform از شما پرسیده شود که آن ها را به دلخواه تنظیم کنید . یکی از بهترین حالات این است که حداقل ورژن سیستم عامل را روی پایین ترین ورژن موجود در لیست تنظیم کنید و Target را روی جدیدترین ورژن SDK تنظیم کنید . پس از ساخته شدن کامل پروژه روی پروژه اصلی (Solution) که در آن 4 پروژه دیگر وجود دارد راست کلیک کنید و Manage NuGet package for solution را بزنید . حال در بخش Updates تیک گزینه Select all packages را بزنید و سپس کلید Update را بزنید تا همه Nuget ها به یک باره آپدیت شوند .سپس احتمالاً ویژوال استدیو از شما میخواهد یک بار برنامه را ریست کنید این کار را انجام دهید . در اجرای مجدد پس از آپدیت شدن همه نوگت ها احتمالاً تعدادی نوگت جدید اضافه خواهد شد مانند Xamarin.Build.Download که آن ها را نیز آپدیت نمائید و در صورت نیاز نیز ویژوال استدیو را مجدداً ریست کنید تا احتمال خطا در حین انجام کار کمتر شود . حال یک بار سولوشن را Rebuild کنید . (Debug , Any CPU, Android) پس از پایان یافتن ریبیلد در پروژه Shared فایل MainPage.XAML را اجرا نمائید و سعی کنید داخل تگ ContentPage یک تگ مانند Label بسازید . اگر ساجسشن های ویژوال استدیو به درستی نمایش داده شد و توانستید تگ Label را پیدا کنید که مشکلی نیست اما در غیر اینصورت باید از ویژوال استدیو و زمارین تشکر کرد ! در این حالت ابتدا یک پوشه به نام View در پروژه Shared ایجاد نمائید . سپس روی پوشه راست کلیک کنید Add -> New item را بزنید . حال یک Content Page با نام دلخواه ایجاد کنید و در پوشه View اضافه نمائید . حال فایل جدید باید بدون مشکل قابلیت ساجست را داشته باشد ! فایل MainPage قبلی که در روت پروژه قرار دارد را حذف کنید و سپس فایل App.XAML.Cs را باز کنید و در کانستراکتور App پس از InitializeComponent() به فایلی که ساختید رفرنس دهید . حال پروژه شما به یک پروژه صحیح بدون مشکل تبدیل شد . حال پس از تصحیح پروژه در ادامه اولین پروژه را خواهیم ساخت . این آموزش ادامه دارد ...
  20. با سلام اواخر سال 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 کنید. شما در ویژوال استودیو چه مشکلاتی دارید؟ زیر همین پست مشکلاتتان را با ما در میان بگذارید
  21. آموزش برنامه نویسی با Xamain.Forms قسمت دوم: معرفی انواع صفحات در زمارین فرم در این قسمت قصد داریم با انواع صفحات موجود در زمارین فرم آشنا شویم. تعدادی از انواع پر استفاده تر این صفحات: Content Page Master Detail Page Navigation Page Tabbed Page نوع اول یعنی Content Page یک صفحه خالی و بسیار ساده است که میتوانید از آن برای نمایش محتوا به کاربر ستفاده کنید. این نوع صفحه در اکثر زبان های برنامه نویسی و قالب ها به عنوان Blank Page نیز شناخته میشود. نوع دوم یعنی Master Details Page یکی از انواع پر کاربرد صفحات است که این نوع صفحه شامل منوی همبرگری به صورت پیشفرض بوده و همچنین عنوان صفحه میباشد. این نوع صفحه به صورت خودکار Navigation های کاربر را مدیریت میکند و همانطور که گفته شد شامل منوی همبرگری قابل سوایپ در اندروید میباشد. Navigation خودکار به ین معنیست که در صورت تغییر صفحه برنامه خود Xamarin به صورت خودکار کلید برگشت را مدیریت خواهد کرد. نوع سوم یعنی Navigation Page نیز دقیقاً مانند Master Detail Page میباشد با این تفاوت که دارای منوی همبرگری نمیباشد. نوع چهارم صفحات یعنی Tabbed Page صفحه ای میسازد که به صورت تب بوده و مشابه Pivot در UWP میباشد. در قسمت بعدی آموزش با آموزش ساخت یک برنامه ماشین حساب بسیار ساده در خدمت شما خواهیم بود. در قسمت دوم آموزش از Content Page استفاده خواهیم کرد که ساده ترین نوع صفحه است. در قسمت های بعدی با انواع دیگر صفحات بیشتر آشنا خواهیم شد.
  22. قسمت اول : آموزش تنظیم Visual Studio Emulator for Android جهت دسترسی به اینترنت ابتدا در استارت منو (یا کرتانا) عبارت Hyper-V Manager را جستجو کنید و برنامه را اجرا کنید . در محیط Hyper-V Manager به قسمت Virtual Switch Manager بروید . در پنجره ای که باز میشود در قسمت سمت راست گزینه External را انتخاب کنید و سپس روی Create Virtual Switch کلیک کنید . سپس در لیست Virtual Switches یک سوئیچ جدید اضافه شده که وارد آن شوید . حال پنجره را Apply و ok کنید تا بسته شود . سپس در صفحه اصلی Hyper-v Manager در قسمت Virtual Machines ماشین مجازی مد نظر خود را انتخاب روی آن راست کلیک نمائید و سپس به قسمت Settings آن بروید . در صورتی که ماشین مجازی مورد نظر را یافت نمیکنید توجه داشته باشید که حتماً یک بار باید ماشین مجازی شما اجرا شده باشد ، در غیر اینصورت در این لیست ظاهر نخواهد شد . در پنجره باز شده در قسمت add hardware گزینه Network Adapter را انتخاب کنید و آنرا Add کنید . حال در لیست سخت افزار ها Network Adapter را انتخاب نمائید و در تنظیمات شبکه Virtual Switch ی که در مراحل قبل ساختید را انتخاب کنید . در صورتیکه چندین virtual switch ایجاد نمودید اینجا نیز به تعداد virtual switch ها Network Adapter بسازید و در هر کدام یکی از سوئیچ ها را انتخاب کنید . حالا پنجره را اوکی کنید و کار تمام است . حالا پس از اجرای امولاتور باید بتوانید از اینترنت استفاده نمایئد .
  23. با سلام در این آموزش با مقدمات برنامه نویسی کراس پلتفرم (مالتی پلتفرم) با استفاده از Xamarin.Forms در خدمت شما هستم . فرض این آموزش بر این هست که شما برنامه نویسی به زبان سی شارپ (C# .Net) را از پیش فرا گرفته اید و آشنایی حداقلی با HTML یا XAML دارید . بنا به دلیل اینکه منابع موجود برای پرسش و پاسخ از Xamarin کمتر از منابع موجود برای Native پلتفرم ها میباشد ابتدا حتماً بر روی یکی از زبان های مبتنی بر سی شارپ تسلط داشته باشید . به دلیل شباهت بیشتر ترجیحاً یکی از این زبان ها / سیستم عامل ها را انتخاب کنید : UWP / WPF / Windows Phone Silverlight / Windows Runtime در این آموزش از Visual Studio 2017 و شبیه ساز اندروید مایکروسافت استفاده شده است . در قسمت اول آموزش به سراغ تنظیم امولاتور خواهیم رفت تا شبیه ساز دسترسی به اینترنت داشته باشد و پس آن به آموزش خواهیم پرداخت . امیدوارم که این آموزش مورد توجهتون قرار بگیره .
  24. جدیدا
  25. سلام، ببخشید اگه خوب توضیح نداده بودم، منظورم این بود که قبلا که برای برنامهم کاشی زنده زده بودم گزینه ای بزارم که کلا غیر فعالش کنم (مثل بعضی برنامه ها که هستن). البته آقا حسام اون کدی که دادن درست کار کرد.
  26. سلام این کد رو امتحان کنید var updater = TileUpdateManager.CreateTileUpdaterForApplication(); updater.Clear();
  27. یه مقدار بیشتر توضیح میدی؟
  28. آموزش iot

    همه چیز درست به نظر میرسه! ماژول بلوتوث رو درست متصل کردید؟ بیاید به تلگرام من (آدرس تلگرامم در پروفایلم هست).
  29. آموزش iot

    سلام دوباره: چرا،اتفاقا وارد کردم اگر وارد نکرده بودم نرم افزار به ماژول متصل نمی شد،نرم افزار متصل میشه ولی موقعی که کلیک میکنم اتفاقی نمی افته
  1. نمایش فعالیت های بیشتر