مشخصات مقاله
Xamarin به همراه MongoDB
کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.
Xamarin به همراه MongoDB
مثال موجود در این مقاله بوسیله Visual Studio پیاده سازی شده است. اگر بخواهید Xamarin و MongoDB را نصب کنید، فرآیند زیر را دنبال کنید:
1. دانلود و نصب Xamarin
2. دانلود و نصب MongoDB
در ابتدا یک پروژه Web API ایجاد کنید تا با MongoDB و برنامه Xamarine ارتباط برقرار کنیم. یک پروژه Class Library اضافه کنید تا تعامل با MongoDB را پیاده سازی کنید.
از طریق Nuget Packages، MongoDB driver packages را اضافه کنید.
حالا می توانید ارجاعات مربوط به MongoDB را به صورت فایل های DLL مشاهده کنید.
یک کلاس به نام MongoHelper ایجاد کنید:
public class MongoHelper
{
public MongoCollection
public MongoHelper()
{
var con = new MongoConnectionStringBuilder("server=127.0.0.1;database=galary");
var server = MongoServer.Create(con);
var db = server.GetDatabase(con.DatabaseName);
Collection = db.GetCollection
}
}
از این کلاس برای برقراری ارتباط با MongoDB استفاده می شود.
یک کلاس دیگر به نام MobileService ایجاد کنید. از این کلاس برای پیاده سازی منطق CRUD جهت تعامل با MongoDB استفاده می شود.
public class MobileService
{
private readonly MongoHelper
public MobileService()
{
_mob = new MongoHelper
}
public void Create(Mobile mob)
{
_mob.Collection.Save(mob);
}
public void Edit(Mobile mob)
{
_mob.Collection.Update(
Query.EQ("_id", mob.MobileID),
Update.Set("Name", mob.Name)
.Set("Details", mob.Details));
}
public void Delete(ObjectId postId)
{
_mob.Collection.Remove(Query.EQ("_id", postId));
}
public IList
{
return _mob.Collection.FindAll().ToList();
}
public Mobile GetMobile(ObjectId id)
{
var mob = _mob.Collection.Find(Query.EQ("_id", id)).Single();
return mob;
}
}
از کلاس Mobile به عنوان یک مدل برای تعامل داده ای استفاده می شود.
public class Mobile
{
[BsonId]
public Guid ID { get; set; }
public int MobileID { get; set; }
public string Name { get; set; }
public string Details { get; set; }
}
با استفاده از کد زیر یک آیتم جدید اضافه می کنیم:
serv.Create(new Mobile { ID= Guid.NewGuid(), MobileID = 1, Name = "Apple", Details = "Testing Application" });
قطعه کد زیر برای بازیابی رکوردهای داده از MongoDB استفاده می شود:
var datalst = serv.GetMobiles();
برای تست برنامه، قبل از هر چیز سرویس MongoDB را روی سیستم محلی خود اجرا کنید.
جهت شروع به کار MongoDB دستور العمل زیر را دنبال کنید:
در Command Prompt دستور زیر را تایپ کرده و Enter کنید:
C:\MongoDB\bin>mongod
سپس سرویس MongoDB آغاز می شود:
یک پروژه Xamarin به Solution اضافه میکنیم.
در تصویر زیر پروژه اضافه شده به Solution را مشاهده می کنید:
وقتی برنامه Xamarin اجرا شود فایل های زیر را در آن مشاهده خواهید کرد:
حالا می توانید WebAPI را از برنامه Xamarin را فراخوانی کنیم. در ادامه قطعه کد Xamarin، مربوط به فراخوانی WPI را مشاهده می کنید.
[Activity(Label = "AndroidApp1", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
int count = 1;
internal Task<JsonValue> JsonObject { get; private set; }
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
string url = "http://localhost/MobileGalaryWeb/API/values";
var request = HttpWebRequest.Create(url);
request.ContentType = "application/json";
request.Method = "GET";
Button button = FindViewById<Button>(Resource.Id.MyButton);
button.Click += delegate
{
//button.Text = string.Format("{0} clicks!", count++);
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
if (response.StatusCode != HttpStatusCode.OK)
Console.Out.WriteLine("Error fetching data. Server returned status code: {0}", response.StatusCode);
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
var content = reader.ReadToEnd();
if (string.IsNullOrWhiteSpace(content))
{
Console.Out.WriteLine("Response contained empty body...");
}
else
{
Console.Out.WriteLine("Response Body: \r\n {0}", content);
}
button.Text = string.Format(content);
//Assert.NotNull(content);
}
}
};
}
}