به 10 دليل ويندوزتان را به ويندوز سرور 2008 R2 بروزرساني كنيد

استفاده از تكنولوژي جديد و بروز بودن در اين محور ارتباط مستقيمي به پيشرفت و بالابردن كارآيي خواهد داشت. استفاده صحيح از دسترنج كساني كه تلاش مي‌كنند تا پاي تكنولوژي به زندگيمان باز شود حاصل يك تفكر با بازتاب طلايي است، با كمي مطالعه در درك تكنولوژي‌هاي جديد كه در اطرافمان هستند سنگيني بار زمانه را به دوش نخواهيد كشيد، اما بايد به اين باور رسيد كه تكنولوژي را به اندازه نيازمان به‌كار ببريم تا نبينيم روزي را كه با استفاده غلط و مطالعه نشده در كلاف تكنولوژي سردرگم شده‌ايم.

متاسفانه در ميان افراد جامعه كم نيستند كساني كه دليل استفاده از تكنولوژي جديد و به‌روز بودن را نمي‌دانند و نيازي به به‌روز شدن در خود حس نمي‌كنند. اما چه خوب است كه شما براي بروز شدن ابتدا مطالعه و تحقيق مي‌كنيد و سپس آگاهانه و به اندازه نياز خود پا را در عرصه تكنولوژي از گليم خود درازتر مي‌كنيد. از اين رو در اين مقاله خواهيد خواند كه استفاده از تكنولوژي‌هاي جديد مايكروسافت چه ويژگي‌هايي دارد و آيا گره از كارتان خواهد گشود يا خير.

1 - پشتيباني بهتر از آخرين سخت‌افزار سرور
ويندوز سرور R22008 اولين نسخه از ويندوز سرور است كه بطور كامل معماري 32 بيتي را رها كرده است. همراه با حركت بسوي معماري 64 بيتي مايكروسافت طراحي ويندوز سرور 2008 R2 را براي پشتيباني از 256 پردازنده منطقي پايه‌ريزي كرده است. بر اين اساس مايكروسافت طراحي Hyper-V را به گونه‌اي انجام داده است كه توانايي پشتيباني از 32 پردازنده منطقي را داشته باشد در حالي كه نسخه ابتدايي از برنامه Hyper-V قابليت پشتيباني از 16 پردازنده را داشت. بطور كلي ويندوز سرور 2008 R2 براي مديريت بهتر را منابع سخت‌افزاري طراحي شده است. استفاده بهينه و كامل از منابعي چون RAM و CPU يكي از چند ويژگي‌هاي ويندوز سرور 2008 R2 است.

2- بهينه‌سازي مصرف انرژي
اين روزها صاحبان صنايع در پي راه‌حل مناسبي جهت كم كردن هزينه‌هاي جاري خود هستند. براي صنعت IT نيز ويندوز سرور 2008 R2 يكي از اين راه‌حل‌ها محسوب مي‌شود، چرا كه استفاده بهينه از منابع انرژي و بهينه‌سازي مصرف برق يكي از ويژگي‌هاي اين نسخه از ويندوز است. استفاده از ويندوز 7 و ويندوز سرور 2008 R2 با توجه به اضافه شدن group plicy مربوط به مديريت منابع و انرژي راهكاري بسيار مناسبي در راه رسيدن به اين هدف مي‌باشد.

3- بهره‌مندي از IIS 7.5
ويندوز سرور 2008 R2 با آخرين نسخه از برنامه Internet Information Services (IIS) همراه است و همراهي IIS با بهترين راهكارهاي امنيتي براي وب‌سايت‌ها و سرورهاي ارائه خدمات ميزباني وب يكي از دلايل محكم و بهره‌مندي از امنيت بيشتر است، به عنوان مثال شما در نسخه‌هاي قبلي IIS از برنامه مفيد امنيتي URLscan چيزي نخواهيد ديد، اما در اين نسخه از IIS برنامه URLscan 3.0 نيز به‌صورت اتوماتيك با IIS 7.5 همراهي مي‌كند تا بتواند امنيت بيشتر و بهتري برايتان ايجاد كند.

4 - بهره‌مندي از PowerShell 2.0
خوشبختانه يكي از ويژگي‌هاي ويندوز سرور 2008 R2 همراهي نسخه جديد PowerShell 2.0 است و با آن مي‌توانيد در ويندوز سرور 2008 R2 نسخه اورجينال بيش از يكصد فرمان تحت محيط خط فرمان يا همان command-line را اجرا كنيد و بصورت حرفه‌اي‌تر به محيط تست و عيب‌يابي ويندوز وارد شويد.

5 - دسترسي مستقيم
هركسي كه تجربه پشتيباني كاربران از راه دور را دارد مي‌داند كه اين چه كار عذاب‌آوري است و البته امروز تقريبا همه انتظار دارند كه بتوانند از راده دور كار كنند. خوشبختانه مايكروسافت روش اين كار را با ستفاده از يك فلسفه جديد براي دسترسي از راه دور آسان كرده است. در ويندوز سرور 2008 R2 ديگر تفاوتي بين يك اتصال محلي و يا اتصال از راه دور وجود ندارد. اساساً، در مورد تمامي اتصالات به شكلي مشابه عمل مي‌شود و ويندوز محاسبات پشت پرده را انجام مي‌دهد. ويژگي كه اين كار را عملي مي‌كند به دسترسي مستقيم يا همان Direct access معروف شده است.

6 - ميزكار مجازي يكپارچه
ويژگي Terminal Service سالهاست كه در ويندوز سرور در دسترس است اما ويندوز سرور 2008 R2 يك ميزكار مجازي يكپارچه و پيشرفته را ارائه كرده است. اين ويژگي دو مزيت دارد؛ اول اينكه برنامه‌هاي ميزبان در منوي استارت ظاهر مي‌شود و اين حالت برنامه‌هايي كه به‌صورت محلي بر روي سرور نصب شده است نيز صادق است. براي كاربر تفكيك برنامه‌هاي نصب شده قبلي و اختصاصي كاربر كمي دشوار بود، اما هم اينك ويندوز سرور 2008 R2 اين تفكيك‌پذيري را انجام داده است. مزيت دوم اين است كه توابع گرافيكي (برخي توابع I/O مانند صفحه كليد و يا ماوس) اينك از طريق ميزكار كاربر اداره خواهد شد. اين بدين معناست در هر با ارتباط با سرور از راه دور از منابع كمتري از سرور استفاده خواهد شد و بنابراين مي‌توان از اين منابع به شكل كارآمدتري استفاده كرد.

7 - بهره‌مندي از تكنولوژي Branch Cache
استفاده از تكنولوژي Branch Cache يكي از بهترين ويژگي‌هاي جديد در ويندوز سرور 2008 R2 ناميده مي‌شود. ايده پشت پرده اين ويژگي جهت بالا بردن كارآيي ارتباطات در محيط WAN به وجود آمده است، به اين ترتيب كه فايل‌هايي كه بر روي سرور قرار گرفته است و كاربران در دفاتر و شعب مختلف بايد به آنها دسترسي داشته باشند مشترك مي‌شود. پيمودن مسير از مبدا تا مقصد و در دسترس قرار دادن فايل‌ها به‌صورت جداگانه براي هر كاربر مستلزم بالا بودن سرعت ارتباط و به هدر رفتن پهناي باند مي‌شود. از اين رو اين تكنولوژي به اشتراك‌گذاري فايل‌ها بين چندين كاربر به‌صورت مشترك را پيشنهاد مي‌دهد. اين تكنيك مي‌تواند كمك بزرگي به كاهش هزينه‌هاي پهناي باند در سرور اصلي باشد و تنها در صورت تغيير فايل اصلي در سرور اين مسير بايد از اول پيموده شود.

8 - ويندوز سرور Backup
يكي از دغدغه‌هاي شركت‌ها براي اطمينان خاطر از روند كار سرورهاي اطلاعاتي تهيه نسخه پشيبان و استفاده از آن در شرايط اضطراري و ضروري است. استفاده از برنامه‌هاي جانبي مانند Acronis و Symantec Gost براي تهيه نسخه پشتيبان و يا برنامه همراه با ويندوز (NTBACKUP) يكي از راهكارهاي پيش روي شركت‌ها بوده است. اما زماني كه ويندوز سرور 2008 به بازار آمد فاقد برنامه تهيه نسخه پشتيبان‌گيري بود و براي بسياري از شركت‌ها استفاده از نرم‌افزارهاي جانبي بسيار سنگين بود و مايكروسافت در نسخه جديد ويندوز سرور 2008 R2 نيز مجددا برنامه حرفه‌اي (NTBACKUP) را به اين مجموعه اضافه كرده است و از نظر قابليت‌هاي نسخه‌هاي قبلي مورد اطمينان‌تر و پيشرفته‌تر است و براي راه‌اندازي سيستم پشتيبان‌گيري يكي از ابزارهاي معقول تبديل شده است.

9 - بهترين روش‌هاي آناليز و تجزيه تحليل
در حال حاضر مايكروسافت نسخه‌اي از برنامه اختصاصي خود با نام (The Best Practices Analyzer) را براي IIS ارائه كرده است پيش از اين اين برنامه به‌صورت يكي از افزونه‌هاي مايكروسافت بود، اما با گذشت زمان و استقبال كاربران حرفه‌اي از اين ابزار براي روش‌هاي آناليز مايكروسافت آن براي ويندوز سرور 2008 R2 به‌صورت رايگان و مستقيم درنظر گرفته است به طوري كه اكنون مي‌توان تجزيه و تحليل سرويس‌هاي مختلف سرور مانند IIS ،SQL Server و ISA Server را با چنين ابزراهايي انجام داد.

10 - Hyper-V
قبلاً هم اشاره كرده بودم Hyper-V با طراحي دوباره توانايي پشتيباني از 32 پردازنده را دارد، اما اين بار مي‌خواهم به يكي ديگر از برجستگي‌هاي اين برنامه اشاره كنم. از مهم‌ترين مسايلي كه ممكن است هنگام استفاده از تكنولوژي‌هاي مجازي‌سازي در پيش داشته باشيد انجام نقل‌وانتقال از يك ميزبان مجازي به يك ميزبان ديگر است، اين اتفاقيست كه ممكن است براي هر كاربري پيش آمده باشد و با سپري شدن زماني كوتاه يا بلند به هدف خود رسيده باشيد. اين بار انجام چنين نقل‌وانتقالي در Hyper-V بدون وقفه و يا به عبارتي بدون Downtime انجام خواهد شد، قابليت كوچك ديگري كه به برجستگي اين ابزار مي‌افزايد اضافه كردن هارد مجازي به ماشين مجازي بدون نياز به بارگذاري و يا ريست كردن مجدد ويندوز است.

انتقال اطلاعات بین صفحات توسط QueryString

ساده ترین و پر کابردترین و شاید بهترین راه انتقال اطلاعات بین صفحات رشته های تقاضا یا QueryString ها میباشند .
QueryString ها در حقیقت رشته ای از حروف هستند که به دنبال آدرس صفحه مورد نظر و بعد از کاراکتر ؟ ظاهر میگردند و در بردارنده یک متغیر به همراه یک مقدار اختصاص یافته میباشند .
برای روشن شدن این موضوع مثال زیر رو در نظر بگیرید:
شما وارد سایت ipp.blogfa.com شدید در صفحه اول اگربه نوار آدرس نگاهی بندازید چنین نوشته ای رو خواهید http://www.ipp.blogfa.com/default.aspx
این نوشته نشان میدهد که صفحه که شما داخل آن قرار دارید صفحه default هست و پسوند این صفحه aspx  است خوب حالا مقاله مورد نظرتون رو انتخال میکنید و روی آن کلیک می نمایید . حالا وارد صفحه نمایش مقاله شده اید بهتر است الان هم یک نگاهی به آدرس بار بندازید چه میبینید؟
کدی مشابه : http://ipp.blogfa.com/article.aspx?code=54b5a658-11fe-4349-b135-4284806b09ff
اکنون میتوانید درک کنید که QueryString چیست در حقیقت تمام رشته حروفی که بعد از علامت سوال نوشته شده جزو QueryString محسوب می شود ، این رشته به صفحه میگوید که متغیری به نام code مقدارش 54b5a658-11fe-4349-b135-4284806b09ff می باشد .
این کد باعث میشود ما بفهمیم که کاربر کدام مقاله را درخواست داده ، بنابراین به سادگی با یک دستور SQL مقاله مورد نظر کاربر را به او نمایش می دهیم .


خوب فرض کنید که یک صفحه دارید و یک تکس باکس به همراه یک باتن. میخوایم مقداری رو داخل تکس باکس بنویسیم و سپس وقتی باتن کلیک شد وارد صفحه جدیدی بشویم که فقط یک  Label در آن وجود دارد و بطور خود کار مقداری که ما داخل TextBox صفحه اول نوشته بودیم داخل آن Label چاپ شود :
فرض کنید نام صفحه اول first.aspx نام صفحه دوم second.aspx آیدی TextBox داخل صفحه اول mytext و آیدی Label داخل صفحه دوم mylabel باشد ...
بر روی باتن صفحه اول دو بار کلیک کنید و در ساب روتین مربوط به رویداد کلیک شدن باتن کد زیر رو بنویسید :

Response.Redirect("second.aspx?myvalue=" + mytext.text)


اگر با متد Response.Redirect آشنا باشید میدانید که این متد صفحه را به صفحه ای که داخل کوتیشن نوشته شده انتقال میدهد
خوب بعد از نوشتن آدرس صفحه دوم یک علامت سوال گذاشتم  و بعد از آن اسم متغیرم را نوشتم ( این متغیر میتواند هر اسم دلخواهی را اختیار کند ) و بعد این متغیر را مساوی مقداری که داخل TextBox نوشته شده قرار دادم( از عملگر &   برای چسباندن دو رشته حرف به هم استفاده می شود )
اکنون وارد صفحه دوم شوید و بر روی صفحه دابل کلیک کنید تا ساب روتین رویداد مربوط به لود شدن صفحه باز شود و داخل آن کد زیر رو بنویسید :
 
mylabel.text == Request.QueryString("myvalue")
 
اگر با متد Request آشنا باشید میدانید که این متد برای درخواست های مختلف بکارمی رود و متد Request.QueryString برای دریافت مقادیر موجود در متغیر تعریف شده در QueryString می باشد.
 
 
 
باید به یک نکته دقت کنید که اصلا مهم نیست که نام متغیر شما چچیست ( مثلا در اینجا myvalue) مهم این است که متغیر ارسالی و درخواستی شما یکی باشند ، یعنی اگر نوشتید secon.aspx?yourname=ali  در صحفه که میخواهید مقدار متغیر را   دریافت کنید باید بنویسید :

Request.QueryString("yourname")

واضح است که مقدار برگشتی کد فوق ali می باشد.
 
فرض کنید بخواهید چند متغیر را توسط .QueryString ارسال کنید اگه مقادیر شما مشخص باشد که کار خیلی سادست :
Response.Redirect("second.aspx?name=arash&family=vahabi&age=22")

در کد فوق نام و نام خانوادگی و سن من برای فرم دوم ارسال شده است .
 
حال اگه مقادیر  بصورت پارامتری باشند از کاراکتر & برای الصاق رشته های ثابت به متغیر های استفاده می کنیم :
  1. {
  2.     string myname = "arash";
  3.     string myfamily = "vahabi";
  4.     string myage = "22";
  5.    
  6.     Response.Redirect("second.aspx?name=" + myname + "family=" + myfamily + "age=" + myage);
  7. }
و درصفحه دوم برای دریافت مقادیر متغیر ها داریم :
 

1.namelabel.text = Request.QueryString("name")
2.familylabel.text = Request.QueryString("family")
3.agelabel.text = Request.QueryString("age")
 
 
مزایا : QueryString بر خلاف سایر روش های انتقال اطلاعات بسیار سبک بوده هیچ فضایی برای ذخیره لازم ندارند استفاده از آن بسیار سادست و بسیار سریع انتقال پیدا میکنند.
معایب : QueryString ها بسیار نا امن میباشند چون داخل Address Bar  جابجا می شوند همه کاربران قادر به مشاهده آنها هستند .
همچنین برای انتقال مقادیر بزرگ و مقادیر غیر رشته ای نمیتوان از QueryString استفاده کرد.
 
همانطور که گفته شد یکی از عیب های QueryString نا امن بودن آن است ، برای حل این مشکل شما میتوانید مقادیر رشته ای که بین صفحات جابجا میشوند را Encode کنید و در صفحه بعد Decode نمایید :
در مثال زیر بنده اسم خود را Encode کرده و در صفحه بعد قبل از نمایش آن را Decode می نمایم :
 
  1. {
  2.     string myname = "arash vahabi";
  3.     string encode_myname = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(myname));
  4.     Response.Redirect("second.aspx?myname=" + encode_name);
  5. }
 
 
اگر به آدرس بار نگاه کنید میبینید که اسم من به کد زیر تبدیل شده که دیگه قابل فهم نیست  :
QWxpIERlbHNoYWQ=
 
در حقیقت Url  به صورت زیر در می آید :
 
second.aspx?myname=QWxpIERlbHNoYWQ
 
در صفحه دوم برای دریافت و Decode کردن مقادیر به صورت زیر عمل می کنیم :
 
  1. {
  2.     byte[] arrData = Convert.FromBase64String(Request.QueryString("myname"));
  3.    
  4.     string namelabel = System.Text.Encoding.ASCII.GetString(arrData);
  5. }
 
البته برای انتقال اطلاعات به صورتی که قابل مشاهده برای بازدید کننده نباشد و همچنین جابجایی اطلاعات حجیم تر راه های دیگری نیز وجود دارد که برخی از آن ها به شرح زیر است :