در ادامه بررسی پروژه Nancy، در این مطلب به میزبانی پروژههای Nancy بدون نیاز به Asp.net میپردازیم. به این معنی که برنامه اجرایی که شما مینویسید خود یک سرور ایجاد میکند و کاربر با وارد کردن آدرس دستگاه شما در مرورگر خود، صفحات و ماژولهای طراحی شده توسط شما را مشاهده میکند.
از کاربردهای چنین سیستمی به سایتهای قابل حمل، و یا ارائه خدمات یک نرم افزار بر روی صفحات html میتوان اشاره کرد. مثل گوگل دسکتاپ و یا گزارشات برخی سرویسهای ویندوزی و یا حتی تنظیم یک سخت افزار متصل به سیستم از روی شبکه. یک ایده جالب میتواند ارسال اس ام اس از طریق شبکه و با جی اس ام مودم باشد. که به عنوان مثال کاربران با ورود به یک صفحه و ثبت پیام بتوانند از طریق جی اس ام مودم متصل به سرور آن را ارسال کنند. با یک مثال ساده ادامه میدهیم.
برای شروع یک پروژه از نوع Console بسازید و در Package manager کتابخانه Nancy.Hosting.Self را نصب کنید.
حالا یک ماژول جدید به نام TestModule.cs به پروژه اضافه میکنیم.
public class TestModule:NancyModule
{
public TestModule()
{
Get["/"] = x=> { return "It is a test for nancy self hosting."; };
}
}
حالا وارد program.cs شده و در متدMain کد زیر را مینویسیم:
var selfHost = new NancyHost(new Uri("http://localhost:12345"));
selfHost.Start();
Console.ReadKey();
selfHost.Stop();
در خط اول پورتی که منتظر دریافت درخواستهای کاربران است را برابر 12345 قرار میدهیم. بنابراین برای تست این کد باید در مرورگر آدرس
http://localhost:12345 را تایپ کنید. اگر بخواهیم کاربر عدد انتهایی را وارد نکند باید از پورت 80 استفاده کنیم که پیش فرض http است ولی اکثرا در سیستم برنامه نویسها توسط IIS مشغول میباشد.
در خط بعد سرور را اجرا کرده ایم و برنامه را به حالت انتظار برای فشرده شدن کلیدی در کنسول برده ایم.
وقتی کلیدی در کنسول فشرده شود سرور به حالت توقف میرود و اجرای برنامه پایان مییابد.
Nancy امکانات دیگری هم دارد. به عنوان مثال میتوان برای طراحی نمای ماژولها از موتورهای دید استفاده کرد (ViewEngines). موتورهایی مثل Razor و ... . در صورت علاقمندی دوستان، در این باره هم خواهم نگاشت.