تبليغاتX
UNiComp.iR | Download Direct Tutorials Video , Film | دانلودمستقیم فیلم آموزشی،کتاب،جزوه،مقاله
دانلودمستقیم فیلم آموزشی،کتاب،جزوه،مقاله
دانلود مستقیم فیلم آموزشی ، کتاب ، جزوه ، مقاله ، هک

اولين سايت فارسي ارائه دهنده فيلم هاي آموزشي با لينك مستقيم دانلود

يکي از مشکلاتي که برنامه نويسان وب در موارد خاص همواره با آن روبرو بوده اند بدست آوردن وضوح تصوير (Resolution)  صفحه مانيتور کاربر و امکان تغيير آن به مقداري است که مورد نظر ما مي باشد.

در DotNet 2005 اين عمل به سادگي امکان پذير مي باشد. که من اين عمل را در قطعه کد زير تشريح مي نمايم

protected void Page_Load(object sender, EventArgs e)

{

Screen Srn = Screen.PrimaryScreen;

tempHeight = Srn.Bounds.Width;



ادامه مطلب...
Subscribe
ارسال در تاريخ دوشنبه سی و یکم فروردین 1388 توسط سعيد

همانطور که می دانید،  در برنامه نویسی برنامه های تحت وب، گاهی نیاز است که اسکریپ یا فایل CSS و یا غیره را به قسمت Header صفحه اضافه کنیم.

 یکی از روش های معمول برای انجام این کار، ایجاد یک کنترل Literal و نسبت دادن اسکریپت مورد نظر به آن می باشد. سپس این کنترل را به شکل زیر باید به Header صفحه اضافه نمود.


Literal ltr = new Literal();
ltr.Text =
"@";
Page.Header.Controls.Add(ltr);

در این مقاله با استفاده از یکی از ویژگی های جدید DotNet Framework 3.5 یعنی متدهای توسعه گر Extension Methods این کار را انجام خواهیم داد.

در صورتی که با متدهای توسعه گر آشنا نیستید، پیشنهاد می شود که پیش از ادامه مقاله، معرفی متدهای توسعه گر را از  اینجا مطالعه نمایید.

متد مربوطه را در قسمت زیر مشاهده می نمایید.


public static void Insert(this HtmlHead h, string script, bool addScriptTags)
{
Literal ltr = new Literal();
if (addScriptTags)
{
ltr.Text =
@"";
}
else
{
ltr.Text = script;
}
h.Controls.Add(ltr);
}

همانطور که ملاحظه می نمایید این متد، کلاس HtmlHead را توسعه داده است. و اکنون با استفاده از فراخوانی متد Insert می توانیم در تمام یوزر کنترل ها و صفحات، اسکریپت مورد نظر خود را به Header صفحه اضافه نماییم.

اکنون چندین مثال از کاربرد و نحوه استفاده از این متد ملاحظه می نمایید.

اضافه نمودن یک فایل جاوا اسکریپت به Header صفحه :


Page.Header.Insert(@"", false);

اضافه نمودن یک تابع جاوا اسکریپت به به Header صفحه :


Page.Header.Insert(@"
function someFunction() {
alert('Hi I AM 30sharp.com');
}"
, true);

اضافه نمودن یک فایل CSS به Header صفحه :


Page.Header.Insert(
@""
, false);
Subscribe
ارسال در تاريخ دوشنبه سی و یکم فروردین 1388 توسط سعيد

مقدمه :

وب سرويس ها مي توانند هدف جذابي براي هکرها باشند ، زيرا هر هکر آماتوري مي تواند با فراخواني متناوب و مکرر يک  وب سرويس توسط يک حلقه تکرار ، باعث اختلال در کار سرور و حتي از کار افتادن آن شوند.(Denial of Service)
در اين ميان سايتهايي که به منظور web 2 طراحي شده اند و داراي صفحه شروع با تکنولوژي آژاکس (Ajax) هستند ، در معرض خطر بيشتري مي باشند.
به طور مثال سايت PageFlakes را در نظر بگيريد. اين سايت مي تواند بهترين هدف براي هکرها باشد. وقتي شما براي اولين بار از اين سايت ديدن مي کنيد ، از شما خواسته مي شود که صفحه اول را براي خود سفارشي سازي کنيد. که اين کار با فراخواني يک وب سرويس با استفاده از تکنولوژي آژاکس انجام مي شود و پس از سفارشي سازي صفحه ، تغييرات شما در کوکي مرورگرتان ذخيره مي شوند.
اگر شما اجازه ذخيره تغييرات را در کوکي ها ندهيد (ويژگي کوکي ها را در مرورگر خود غير فعال کرده باشيد) ، شما با بازديد مکرر و پشت سر هم از صفحه اول سايت باعث فراخواني مکرر وب سرويس مربوطه شده و باعث آسيب رساندن به سايت مربوطه و سرور آن خواهيد شد.
اي عمل توسط چند خط کد مي تواند انجام شود که در زير آن را مشاهده مي کنيد.


for (int i = 0; i < 100000; i++)
{
WebClient client =
new WebClient();
client.DownloadString(
"http://www.pageflakes.com/default.aspx");
}

با اين که روش ياد شده جهت حمله به يک وب سرويس ، بسيار ساده مي باشد ولي جالب است بدانيد که بسياري از سايتها نسبت به اين آسيب پذيري ايمن نمي باشند. در اين مقاله روش جلوگيري از اين نوع حملات را مورد بحث قرار خواهيم داد.

شروع  از ابتدا:

در ابتدا فرض مي کنيم که کاربر مي تواند سه حالت داشته باشد :

  1. براي اولين بار از صفحه ديدن مي کند (هنوز سفارشي سازي نکرده و تغييرات در کوکي ها ذخيره نشده اند)
  2. براي چندمين بار از صفحه ديدن مي کند ( تغييرات ذخيره شده اند)
  3. کاربر در صفحه در حال Post Back کردن باشد.

براي هر حالت ما حداکثر تعداد دفعاتي که کاربر مجاز است اين عمل را انجام دهد را تعيين مي کنيم. ما در اينجا فرض را بر آن مي گيرم که کاربر در يک بازه زماني دلخواه ( در اينجا ما 10 دقيقه در نظر مي گيريم) ، حق دارد 100 مرتبه براي اولين بازديد ، 100 مرتبه براي  بازديد مجدد و 1000 بار براي Post Back کردن درخواست دهد و اگر بيشتر از اين دفعات در ظرف 10 دقيقه انجام شود ، ما آن درخواست را طبق روشي که در ادامه شرح داده خواهد شد ، حذف مي کنيم.
لازم به ذکر است که کاربر پس از 10 دقيقه مجددا مي تواند درخواست هاي خود را جهت بازديد از صفحه يا فراخواني وب سرويس انجام دهد.
براي شمارش تعداد درخواست هاي کاربر ، نياز داريم که مشخصه IP کاربر را همراه با تعداد درخواست  او ، ذخيره کنيم.
در قطعه کد زير کلاسي به نام ActionValidator نوشته ايم که داراي يک ساختار شمارشي (enum) به نام  ActionTypeEnum مي باشد. اين ساختار نوع  درخواست کاربر و حداکثر تعداد مجاز درخواست  کاربر را نگهداري مي کند.


private const int DURATION = 10; // 10 min period
public enum ActionTypeEnum
{
FirstVisit = 100,
// The most expensive one, choose the value wisely.
ReVisit = 100, // Welcome to revisit as many times as user likes
Postback = 1000, // Not must of a problem for us
}

در اين قسمت متد استاتيکي نوشته ايم به نام IsValid ، که در صورتي که درخواست کاربر مجاز باشد ، مقدار true و در صورتي که تعداد درخواست هاي کاربر بيشتر از حد مجاز باشد ، مقدار false را برمي گرداند. تعداد درخواست هاي کاربر و IP مربوط به آن در حافظه پنهان (Cache) نگهداري مي شوند.


public static bool IsValid(ActionTypeEnum actionType)
{
HttpContext context = HttpContext.Current;
if (context.Request.Browser.Crawler) return false;
string key = actionType.ToString() + context.Request.UserHostAddress;
HitInfo hit = (HitInfo)(context.Cache[key] ?? new HitInfo());
if (hit.Hits > (int)actionType) return false;
else hit.Hits++;
if (hit.Hits == 1)
context.Cache.Add(key, hit,
null, DateTime.Now.AddMinutes(DURATION),
System.Web.Caching.
Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.Normal, null);
return true;
}

کلاس HitInfo صفتي به نام Hits دارد که تعداد دفعات درخواست کاربر را نگهداري مي کند.
خوب اکنون زمان استفاده از کلاسي که نوشته ايم رسيده است. بدين منظور رويداد OnInit مربوط به صفحه  را override مي کنيم.
کنترل مي کنيم که اگر درخواست کاربر غير مجاز بود ، آن را با دستور Response.End حذف مي کنيم و در غير اين صورت اجازه ادامه کار را به آن خواهيم داد.


protected override void OnInit(EventArgs e)
{
base.OnInit(e);
// Check if revisit is valid or not
if (!base.IsPostBack)
{
// Block cookie less visit attempts
if (Convert.ToBoolean(Profile.IsFirstVisit))
{
if (!ActionValidator.IsValid(ActionValidator.ActionTypeEnum.FirstVisit)) Response.End();
Profile.IsFirstVisit =
"false";
}
else
{
if (!ActionValidator.IsValid(ActionValidator.ActionTypeEnum.ReVisit)) Response.End();
}
}
else
{
// Limit number of postbacks
if (!ActionValidator.IsValid(ActionValidator.ActionTypeEnum.Postback)) Response.End();
}
}

همانطور که مشادهده کرديد راه حل جلوگيري از اين نوع حملات بسيار ساده و در عين حال بسيار مؤثر مي باشد.

Subscribe
ارسال در تاريخ دوشنبه سی و یکم فروردین 1388 توسط سعيد
بررسی بيشتر وب پارتها با استفاده از مثال

همانطور كه در قسمت قبل نيز اشاره شد، صفحه اي که براي ميزباني يک وب پارت طراحي مي شود اصطلاحا "صفحه وب پارت" يا WebPart page ناميده مي شود. يک صفحه وب پارت تنها به يک  کنترل "WebPartManger" و تعدادي کنترل "WebPartZone" نياز دارد. لازم به ذکر است که براي اضافه کردن اين کنترلها به صفحه کافي است در منوي Toolbox به قسمت WebParts رفته و کنترلهاي مورد نظر خود را به صفحه اضافه نماييم.


يک وب پارت ممکن است به صورت دلخواه شما شامل يک کنترل EditorZone  و يا CatalogZone باشد. توجه داشته باشيد که تگ WebPartManager بايد در يک فايل .aspx(يا صفحه معمولي وبي در محيط دات نت) و قبل از هر تگ وابسته ديگري از قبيل WebPartZone يا EditorZone  قرار بگيرد. براي داشتن ظاهري بهتر از از يک صفحه وب پارت بهتر است، بوسيله جداول و تگهاي HTML محل زونها را در صفحه کنترل نماييم.


       
          
            
            
            

           

 

در اين قسمت به ايجاد يک کلاس ساده که از وب پارت مشتق شده است، مي پردازيم.


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace WingtipWebParts
{
    public class HelloWorld: WebPart
    {
        public HelloWorld()
     {
            this.Title = "Hello World!";
            this.TitleIconImageUrl = @"img\test.gif";
     }
        protected override void RenderContents(HtmlTextWriter writer)
        {
            writer.Write("Can I have your attention please?");
        }
    }
}

هر نمونه (instance) از يک وب پارت با يک



ادامه مطلب...
Subscribe
ارسال در تاريخ دوشنبه سی و یکم فروردین 1388 توسط سعيد

هنگام کار کردن با نماي Source View يا همان Markup در ASP.NET حتما متوجه شده ايد که گذاشتن علامت دابل کوتيشن در اطراف صفات بسيار دست و پاگير مي باشد و در باعث اتلاف وقت نيز مي گردد.
ويژوال استوديو به طور پيش فرض علامت دابل کوتيشن را در اطراف صفات قرار نمي دهد و شما بايد خودتان اين کار را انجام دهيد.
اکنون قصد دارم تکنيکي رو معرفي کنم که با انجام آن، خود ويژوال استوديو اين کار را انجام خواهد داد.
به مسير زير برويد.


Tools | Options | Text Editor | HTML | Format | Insert attribute value quotes when typing

اکنون به نماي Markup رفته و تغييرات را مشاهده نماييد.
از اين به بعد وقتي نام صفت را نوشته و علامت مساوي (=) را تايپ مي کنيد، خود ويژوال استوديو کاراکتر هاي دابل کوتيشن را وارد مي نمايد

Subscribe
ارسال در تاريخ دوشنبه سی و یکم فروردین 1388 توسط سعيد

ايجاد دانلود هوشمندانه در نرم افزارهاي تحت وب :


دانلود فايل در نرم افزار هاي تحت وب به سادگي ايجاد يک لينک توسط HTML مي باشد. که کاربران سايت با کليک کردن روي لينک مورد نظر مي توانند نسبت به دانلود اقدام نمايند. ولي در شرايط گوناگون اين بهترين راه حل نمي باشد. به عنوان مثال :
هنگامي که فايل دانلودي بسيار حجيم باشد.
هنگامي که مايل نيستيد کاربران محل دقيق فيزيکي فايل روي ديسک سخت را ببينند.
هنگامي که براي دانلود فايل شرايط بخصوصي را در نظر گرفته باشيد مثلا قبل از اينکه فايل را بتوانند دانلود کنند بايد در سايت ثبت نام کرده باشند.
هنگامي که مي خواهيد اطمينان داشته باشيد که کاربران فقط از درون سايت شما بتوانند فايل را دانلود کنند و ديگران نتوانند با دادن لينک مستقيم از خارج از وب سايت شما به فايل دسترسي پيدا کرده و از پهناي باند شما استفاده نمايند.
و دلايل بسيار ديگر.
در اين شرايط شما بايد امکاني داشته باشيد که قبل از داونلود بتوانيد وضعيت کاربر را کنترل نماييد .
در اين مقاله براي شما راه حل هايي را براي داشتن دانلود سريعتر و خالي از اشکال  ارائه خواهم داد.
راه حل هاي زير پيشنهاد مي شود.
استفاده از متد Response.WriteFile
استريم کردن فايل با استفاده از متد Response.BinaryWrite.
استفاده از Response.TransmitFile
استفاده از يک فيلتر ISAPI
نوشتن يک کنترل Browser سفارشي


راه حل اول :



ادامه مطلب...
Subscribe
ارسال در تاريخ دوشنبه سی و یکم فروردین 1388 توسط سعيد
آشنايی با وب پارتها، شرح مزايای استفاده از اين کنترلها در پورتالها

در اين مقاله به بحث در خصوص يکي از امکانات جديد ASP.Net پرداخته مي شود. امروزه وب سايتهاي زيادي را مشاهده مي کنيم که از ساختار ماژولي استفاده مي کنند و به کاربران اجازه مي دهند که محتويات سايت را به صورت دلخواه خود در صفحه بچينند و يا اصطلاحا شخصي سازي نمايند. با استفاده از خواص جديد ASP.NET 2.0 يا همان وب پارتها به سادگي مي توان صفحه را به مناطق يا اصلاحا زونهايي تقسيم بندي کرد و در ساختار آنها تغيير ايجاد نمود. در واقع وب پارتها، اشيايي هستند که کاربر مي تواند آنها را باز کند، ببندد و يا حرکت دهد. هر چند که امروزه روشهاي ديگري نيز براي شخصي سازي ظاهر سايت با استفاده از فناوري آژاکس استفاده ميشود، اما استفاده از اين روش نيز مزيتهاي خود را دارد. در اين مقاله به بحث و بررسي در خصوص اين کنترلها مي پردازيم.



ادامه مطلب...
Subscribe
ارسال در تاريخ دوشنبه سی و یکم فروردین 1388 توسط سعيد

در نرم افزارهای تحت وب گاهی اوقات نیاز پیدا می کنید که تمام منابعی که در حافظه Cache ذخیره شده اند را حذف نمایید تا دفعه بعد با اطلاعات جدید پر شوند.
در مورد Session State متدی به نام Abandon وجود دارد که با فراخوانی آن، تمامی اطلاعات ذخیره شده در حافظه Session برای کاربر مورد نظر خالی می شود ولی در مورد حافظه Cache چنین متدی وجود ندارد.
با استفاده از تکنیک زیر می توانید حافظه Cache را به طور کامل خالی نمایید.


//www.unicomp.ir
IDictionaryEnumerator enumerator = HttpContext.Current.Cache.GetEnumerator();
List<string> itemsToRemove = new List<string>();
while (enumerator.MoveNext())
{

   itemsToRemove.Add(enumerator.Key.ToString());
}
foreach (string itemToRemove in itemsToRemove)
   HttpContext.Current.Cache.Remove(itemToRemove);
}

تذکر :

به یاد داشته باشید که این ترفند در مورد صفحاتی که از OutputCache استفاده نموده اند کارساز نیست.

برای خالی نموندن حافظه Cache شده در صفحاتی که از OutputCache استفاده نموده اند از قطعه کد زیر استفاده نمایید.

HttpRuntime.Close();

موفق باشید.

Subscribe
ارسال در تاريخ دوشنبه سی و یکم فروردین 1388 توسط سعيد

هنگام کار با کنترل هاي ASP.NET حتما متوجه شده ايد که تمام کنترل ها داراي 3 صفت ID و UniqueID و ClientID مي باشند که هر سه اين صفت ها داراي مقداري منحصر به فرد مي باشند.
شايد اين سوال در ذهن شما پيش آمده باشد که کاربرد اين سه صفت چيست؟

ID :

با صفت ID همگي آشنايي داريم. اين صفت جهت مقداردهي و دسترسي به کنترل هاي وب، هنگام برنامه نويسي کارايي دارد. 

UniqueID :

براي توضيح عملکرد UniqueID از يک مثال استفاده مي کنم. فرض کنيد يک کنترل Repeater داريد که داراي ItemTemplate مي باشد و در داخل اين ItemTemplate  يک عدد TextBox داريد که تعداد محصول خريداري شده و يک کنترل Label داريد که نام محصول خريداري شده را نگهداري مي کند.
اکنون فرض کنيد يک مشتري 5 نوع محصول مختلف خريداري نموده است. يعني ItemTemplate  ما 5 مرتبه تکرار شده است و ما 5 عدد TextBox و 5 عدد Label داريم که تعداد محصول هاي خريداري شده و نام هريک را نگهداري مي کنند. مشکل اينجا به وجود مي آيد که  اين TextBox ها داخل Repeater به وجود آمده اند، پس ما به هر کدام از اينها يک ID منحصر به فرد نداده ايم و داراي نام هاي يکساني مي شوند پس چگونه بايد به محتواي يک TextBox خاص دسترسي پيدا کنيم؟!
اين مشکل توسط ,UniqueID حل مي شود. اين صفت به طور اتوماتيک توليد شده و باعث تمايز اين TextBox ها از يکديگر مي شود. پس يکي از کاربردهاي اين صفت در کنترل هايي مانند Repeater و GridView و Wizard و غيره که داده هاي سلسله مراتبي (hierarchy) توليد مي کنند، مي باشد.
مقدار صفت UniqueID به طور مثال مي تواند به صورت "CreateUserWizard1$CreateUserStepContainer$Email" باشد.
همانطور که مي بينيد مقدار معمولا طولاني مي باشد که تشکيل شده است از نام کنترل هاي والد (Parent) آن، که با علامت $ از هم مجزا شده اند.
با اين وجود يک مشکل ديگر وجود دارد و آن اين است که علامت $ در HTML از لحاظ فني يک کاراکتر غير معتبر مي باشد. و ما اگر بخواهيم از اين صفت در سمت مشتري (Client) استفاده نماييم (معمولا درجاوااسکريپت و آژاکس) ، دچار مشکل مي شويم.

ClientID :

صفت ClientID اين مشکل را حل مي نمايد. اين صفت، کاراکتر $ در صفت UniqueID را با علامت "_" که يک کاراکتر معتبر مي باشد، جايگزين مي نمايد. يعني مقدار ClientID شبيه اين مي باشد "CreateUserWizard1_CreateUserStepContainer_Email".
پس اين مشکل نيز رفع شد و ما مي توانيم با استفاده از جاوا اسکريپت به راحتي به مقدار هر کنترلي دسترسي داشته باشيم.

Subscribe
ارسال در تاريخ دوشنبه سی و یکم فروردین 1388 توسط سعيد
با ورود موبایل به دنیای اینترنت و امکان گشت و گذار در اینترنت توسط تلفن های سیار، امروزه نمایش درست صفحات وب در اینگونه دستگاه ها به یکی از دغدغه های توسعه گران وب تبدیل شده است.

صفحات وب با توجه به طول و عرض آن ها و استفاده از اسکریپت ها و غیره، معمولا مناسب نمایش در تلفن های همراه نیستند و در نتیجه معمولا این صفحات در مرورگر تلفن همراه به شکل نامناسبی نمایش داده می شوند.

لذا لازم است صفحات را با استانداردهای خاصی طراحی نمود تا مناسب نمایش در تلفن های همراه شوند.

در این ترفند روشی را معرفی خواهیم نمود که مشخص می نماید که بازدید کننده وب سایت آیا از یک مرورگر معمولی استفاده می نماید یا یک مرورگر موبایل. در نیتجه می توان بازدید کننده را به صفحات مناسب مرورگر خود هدایت نمود.

در قسمت زیر یک متد استاتیک را ملاحظه می نمایید که مقدار برگشتی آن یک مقدار bool می باشد.

در صورتی که مقدار برگشی این متد true باشد، مرورگر موبایل می باشد و در غیر اینصورت مرورگر معمولی می باشد.

كد در ادامه مطلب ...



ادامه مطلب...
Subscribe
ارسال در تاريخ دوشنبه سی و یکم فروردین 1388 توسط سعيد

استفاده بهینه از لب تاپ در اسخلان !!

Subscribe
ارسال در تاريخ دوشنبه بیست و چهارم فروردین 1388 توسط سعيد

October 4th, 2007

ISBN: 1590597575

Publisher Apress
Author(s) Robert Pickering
ISBN 1590597575
Release Date 30 May 2007

Functional programming (FP) is the future of .NET programming, and F# is much more than just an FP language. Every professional .NET programmer needs to learn about FP, and there’s no better way to do it than by learning F#–and no easier way to learn F# than from Foundations of F#.

If you’re already familiar with FP, you’ll find F# the language you’ve always dreamed of. And all .NET programmers will find F# an exciting real-world alternative to C# and Visual Basic. This book is likely to have many imitators, but few true competitors. Written by F# evangelist Rob Pickering, and tech reviewed by F#’s main designer, Don Syme, this is an elegant, comprehensive introduction to all aspects of the language and an incisive guide to using F# for real-world professional development. F# is the future of programming (not just on .NET), and the future is now.



ادامه مطلب...
Subscribe
ارسال در تاريخ شنبه بیست و دوم فروردین 1388 توسط سعيد

January 7th, 2008

ISBN: 1590598733

Publisher Apress
Author(s) Trey Nash
ISBN 1590598733
Release Date 12 November 2007

C# 2008 offers powerful new features, and Accelerated C# 2008 is the fastest path to mastering them, and the rest of C#, for both experienced C# programmers moving to C# 2008 and programmers moving to C# from another object-oriented language. Many books introduce C#, but very few also explain how to use it optimally with the .NET common language runtime (CLR). This book teaches both core C# language concepts and how to wisely employ C# idioms and object-oriented design patterns to exploit the power of C# and the CLR.

This book is both a rapid tutorial and a permanent reference. You’ll quickly master C# syntax while learning how the CLR simplifies many programming tasks. You’ll also learn best practices that ensure your code will be efficient, reusable, and robust. Why spend months or years discovering the best ways to design and code C# when this book will show you how to do things the right way, right from the start?

* Comprehensively and concisely explains both C# 2005 and C# 2008 features
* Focuses on the language itself and on how to use C# 2008 proficiently for all .NET application development
* Concentrates on how C# features work and how to best use them for robust, high-performance code.

What you’ll learn
o How C# works with and exploits the CLR
o How to use arrays, collections, and iterators
o How to handle events with delegates and anonymous functions
o How to design and use generic types and methods
o How to thread efficiently and robustly
o How the new C# 2008 anonymous types, lamba expressions, and extension methods work and how to use them

Who is this book for?

If you’re an experienced C# programmer, you need to understand how C# has changed with C# 2008. If you’re an experienced object-oriented programmer moving to C#, you want to ramp up quickly in the language while learning the latest features and techniques. In either case, this book is for you. The first three chapters succinctly present C# fundamentals, for those new to or reviewing C#. The rest of the book covers all the major C# features, in great detail, explaining how they work and how best to use them. Whatever your background or need, you’ll treasure this book for as long as you code in C# 2008.



ادامه مطلب...
Subscribe
ارسال در تاريخ شنبه بیست و دوم فروردین 1388 توسط سعيد

December 29th, 2007

ISBN: 0124660517

Publisher Morgan Kaufmann Publishers
Author(s) Kenneth L. Calvert
ISBN 0124660517
Release Date 29 April 2004

The popularity of the C# language and the .NET framework is ever rising due to its ease of use, the extensive class libraries available in the .NET Framework, and the ubiquity of the Microsoft Windows operating system, to name a few advantages. TCP/IP Sockets in C# focuses on the Sockets API, the de facto standard for writing network applications in any programming language. Starting with simple client and server programs that use TCP/IP (the Internet protocol suite), students and practitioners quickly learn the basics and move on to firsthand experience with advanced topics including non-blocking sockets, multiplexing, threads, asynchronous programming, and multicasting. Key network programming concepts such as framing, performance and deadlocks are illustrated through hands-on examples. Using a detailed yet clear, concise approach, this book includes numerous code examples and focused discussions to provide a solid understanding of programming TCP/IP sockets in C#.

Features
* Tutorial-based instruction in key sockets programming techniques complemented by numerous code examples throughout
* Discussion moves quickly into the C# Sockets API definition and code examples, desirable for those who want to get up-to-speed quickly
* Important coverage of “under the hood” details that developers will find useful when creating and using a socket or a higher level TCP class that utilizes sockets
* Includes end-of-chapter exercises to facilitate learning, as well as sample code available for download at the books companion web site



ادامه مطلب...
Subscribe
ارسال در تاريخ شنبه بیست و دوم فروردین 1388 توسط سعيد

December 29th, 2007

ISBN: 1590597893

Publisher Apress
Author(s) Joseph C. Rattz
ISBN 1590597893
Release Date 19 November 2007

LINQ is the project name for a set of extensions to the .NET Framework that provide a generic approach to querying data from different data sources. LINQ will premier in Visual Studio 2008, and will become the next must-have skill for .NET developers. For more information about LINQ, you can check out the author’s portal at www.linqdev.com.

Pro LINQ: Language Integrated Query in C# 2008 is all about code.

Literally, this book starts with code and ends with code. In most books, the author shows the simplest example demonstrating how to use a method, but they so rarely show how to use the more complex prototypes. Pro LINQ: Language Integrated Query in C# 2008 is different. Demonstrating the overwhelming majority of LINQ operators and protoypes, it is a veritable treasury of LINQ examples.

Rather than obscure the relevant LINQ principles in code examples by focusing on a demonstration application you have no interest in writing, Pro LINQ: Language Integrated Query in C# 2008 cuts right to the chase of each LINQ operator, method, or class. However, where complexity is necessary to truly demonstrate an issue, the examples are right there in the thick of it. For example, code samples demonstrating how to handle concurrency conflicts actually create concurrency conflicts so you can step through the code and see them unfold.

Most books tell you about the simple stuff, while few books warn you of the pitfalls. Where Pro LINQ: Language Integrated Query in C# 2008 returns your investment is in the hours, and sometimes days, spent by the author determining why something may not work as expected. Sometimes this results in an innocent looking paragraph that may take you a minute to read and understand, but took days to research and explain.

Face it, most technical books while informative, are dull. LINQ need not be dull. Written with a sense of humor, Pro LINQ: Language Integrated Query in C# 2008 will attempt to entertain you on your journey through the wonderland of LINQ and C# 2008.
What you’ll learn

* How to leverage all the new LINQ relevant C# 2008 language features including extension methods, lambda expressions, anonymous data types, and partial methods.
* How to use LINQ to Objects to query in-memory data collections such as arrays, ArrayLists, and Lists to retrieve the data you want.
* Why some queries are deferred, how a deferred query can bite you, and how you can make deferred queries work for you.
* How to use LINQ to XML to revolutionize your creation, manipulation, and searching of XML data.
* How to query DataSets with LINQ to DataSet so you can co-exist with legacy code and use LINQ to query databases other than SQL Server.
* How to query Databases with LINQ to SQL, write your own entity classes, and understand how to handle concurrency conflicts.



ادامه مطلب...
Subscribe
ارسال در تاريخ شنبه بیست و دوم فروردین 1388 توسط سعيد

December 29th, 2007

ISBN: 1590598938

Publisher Apress
Author(s) Mario Szpuszta
ISBN 1590598938
Release Date 15 November 2007

ASP.NET 3.5 is the latest version of Microsoft’s revolutionary ASP.NET technology. It is the principal standard for creating dynamic web pages on the Windows platform. Pro ASP.NET 3.5 in C# 2008 raises the bar for high-quality, practical advice on learning and deploying Microsoft’s dynamic web solution.

Seasoned .NET professionals Matthew MacDonald and Mario Szpuszta explain how you can get the most from this groundbreaking new technology. They cover ASP.NET 3.5 as a whole, illustrating both the brand-new features and the functionality carried over from previous versions of ASP. This book will give you the knowledge you need to code real ASP.NET 3.5 applications in the best possible style.

The book will teach you ASP.NET 3.5 starting with core concepts to more advanced topics. You will learn

* Core concepts of ASP.NET 3.5. Why it’s special. What it’s fundamental principals are. The basics of Visual Studio. How ASP.NET 3.5 controls are created, and how they fit into ASP.NET 3.5 pages, ultimately creating full applications
* Data access details. The intricacies of ADO.NET and how to perform data binding to many sources from databases to file streams to XML. We include LINQ coverage so you’re on the bleeding edge
* Security. Once considered the Achilles heel of all Windows web applications, security has vastly improved and is a cornerstone of ASP.NET 3.5. This section explains the various forms of available security, and how to best apply them
* Taking things further using advanced user interface techniques. This includes user controls, customer server controls, client-side JavaScript, and GDI .
* Web services. In an increasingly connected world, working with web services grows in importance. This book will show you how to work with them.
* ASP.NET AJAX, with an emphasis on comtemporary web development techniques
* Development using Internet Information Services 7, Microsoft’s premier web hosting platform.
* And much more.



ادامه مطلب...
Subscribe
ارسال در تاريخ شنبه بیست و دوم فروردین 1388 توسط سعيد


10 شغل و تخصص پر درآمد در دنیای امروز

با حداقل تحصیلات


گروه اینترنتی پرشین استار | www.Persian-Star.org


لیست مشاغلی كه در اینجا ملاحظه می كنید مربوط به جامعه ی امروز امریكا است اما واقعیت اینست كه اینگونه شغل ها در كشورهای دیگر هم رایج است و می توان اینگونه گفت كه صاحبكاران را محتاج شما می كنند، و نه بر عكس ...
 

گروه اینترنتی پرشین استار | www.Persian-Star.org


۱- computer software engineer (برنامه نویسی كامپیوتر)

اداره آمار امریكا اعلام كرده كه این شغل تا پایان سال 2014 یعنی تا پنج سال آینده در صدر مشاغل پر درآمد و دایما در حال پیشرفت قرار خواهد داشت.

۲- paralegal (دستیار حقوقی)
صاحبكاران دایما در حال كاهش هزینه های بیزینس هستند و یكی از اینها جایگزینی وكیل بیزینس با مشاوران یا دستیاران حقوقی البته با مدرك تحصیلی پایینتر از وكیل ولی با تقریبا همان سرویس و شغل است. بسیاری از موسسه های آموزشی یا كالج های فوق دیپلم چنین مدركی میدهند و یا مثلا اگر فعلا یك لیسانس دانشگاهی دارید میتوانید با گذراندن چند درس تخصصی اضافی، پارالیگال بشوید.

3- accountant (حسابدار)
نیازی به توضیح بیشتر نیست كه افراد، بیزینس ها، بانكها، شركتهای بیمه و حتی دولتها به این تخصص همیشه نیاز دارند.

4- occupational therapist (كار درمانی و تراپیست)
یعنی كسانیكه به كارمندان و كارگران و سایر مردم عادی برای بهتر و سالمتر زندگی و كار كردن و یا بهبود وضعیت فكری و فیزیكی و سلامتی آنها كمك فكری و فیزیكی می كنند. هر چند كه برای دریافت بالاترین حقوق در چنین تخصصی باید مدرك مستر master' (فوق لیسانس) داشته باشید اما جالبه بدانید كه در امریكا بیش از 13.5 میلیون نفر در این شغل مشغول بكارند و كلا مشاغل و تخصصهایی كه در رابطه با پرستاری و سلامتی و دارو و درمان و نگهداری از بیماران یا سالمندان است جزو پر درآمدترین و پر تقاضا ترین و همچنین پیشروترین مشاغل امریكا هستند و هیچ متخصصی در این حوزه بیكار نیست. شما حتی با دو سال تحصیل فوق دیپلم هم می توانید در گوشه ای از این تخصص بكار مشغول شوید و حتی نیاز به لیسانس دانشگاهی هم ندارید.

5- post-secondary teachers (دبیر دبیرستانها و موسسات آموزشی و استاد دانشگاه و كالج)
در لیست 50 شغل برتر در امریكا كه تلویزیون CNN تهیه كرده بود این تخصص در رتبه دوم است و برای كسب درآمد بیشتر البته نیاز به مدرك فوق لیسانس دارید و بویژه برای تدریس در رشته های بیزینس، پزشكی و كامپیوتر همیشه تقاضای كار برایتان فراوان است.

6- actuary (شناسایی، مدیریت و كنترل ریسك در بیزینس ها)
این تخصص هم بویژه برای كار در شركتهای بیمه، یا در هر بیزینسی تا سال 2014 میلادی همچنان پر درآمد خواهد بود. برای چنین تخصصی شما نیاز به مدركی در حد لیسانس امور مالی (با گرایش كامپیوتری و تخصص در ریاضیات و برآورد ریسك) دارید. بیزینسها همیشه برای پیش بینی ریسك در مثلا سرمایه گذاری یا تصمیمات مهمشان نیاز به متخصصانی برای عرضه راه حلهای عملی و مدرن دارند.

7- medical assistant (دستیار پزشك)
در بسیاری رشته های پزشكی، آنهم فقط با یكی دو سال تحصیل بعد از دیپلم دبیرستانی، میسر میشود و نیازی به دانشگاه رفتن هم نیست.

8- lawyer (وكالت)
اگر به پرستیژ و اینجور چیزها می اندیشید بویژه در بیزینس، محیط زیست، مالیات محلی و بین المللی، پزشكی، و ثبت اختراعات و علایم تجاری این شغل هم مناسب است.

9- home health aide (نگهداری از بیماران یا سالمندان در خانه)
با افزایش تعداد سالمندان و اینكه فرزندان برای نگهداری از والدین فرصت یا علاقه ای ندارند، چنین تخصصی در حال افزایش است و صرفا با مثلا چند ماه یا یكسال تحصیل میتوان به چنین شغلی پرداخت.

10- computer systems analyst (كامپیوتریزه كردن بیزینس ها و تشكیلات)
با مدارك فوق دیپلم به بالا و یا حتی بدون مدرك و صرفا با خودآموزی همیشه برایش تقاضای كار هست.

Subscribe
ارسال در تاريخ شنبه بیست و دوم فروردین 1388 توسط سعيد

گروه اینترنتی پرشین استار | www.Persian-Star.org

تماشاگران : موریس ژار آهنگساز فیلم‌های "دکتر ژیواگو" و "محمد رسول الله" و برنده سه جایزه اسکار، روز یکشنبه بر اثر ابتلا به سرطان در 84 سالگی در لس آنجلس درگذشت. به گزارش تماشاگران بی‌بی‌سی اعلام کرد ژار که 9 نامزدی و سه جایزه اسکار در کارنامه داشت، سال 1962 با ساخت موسیقی متن فیلم "لورنس عربستان" در سطح بین‌المللی به شهرت رسید و این فیلم آغاز همکاری 20 ساله و بسیار موفق او با دیوید لین فیلمساز بریتانیایی بود.

ژار 13 سپتامبر سال 1924 در شهر لیون فرانسه به دنیا آمد و دوران موسیقیایی خود را با فراگیری پرکاشن و رهبری ارکستر در کنسرواتوار پاریس آغاز کرد. او سال 1952 با ساخت موسیقی متن فیلم Hotel des Invalides به کارگردانی ژرژ فرانژو وارد دنیای سینما شد. ژار تا اواسط دهه 1960 موسیقی چند فیلم فرانسوی را نوشت تا اینکه هالیوود او را کشف کرد. آهنگساز برنده اسکار بیش از 150 فیلم در کارنامه داشت و با تعدادی از فیلمسازان مطرح دنیای سینما شامل جان فرانکن‌هایمر، آلفرد هیچکاک، جان هیوستن، لوکینو ویسکونتی، پیتر ویر و فولکر شلوندورف کار کرد.

او سه بار برای فیلم‌های "لورنس عربستان"، "دکتر ژیواگو" 1965 و "گذری به هند" 1984 - هر سه به کارگردانی دیوید لین - برنده اسکار شد و برای فیلم‌های "یکشنبه‌ها و سیبل" 1962، "زندگی و روزگار قاضی روی بین" 1972، "محمد رسول الله" 1976، "شاهد" 1985، "گوریل‌ها در مه" 1988 و "روح" 1990 نامزد اسکار بود.

ژار بعدها بر موسیقی الکترونیک متمرکز شد و پسرش ژان میشل ژار که از پیشگامان موسیقی الکترونیک است، این راه را با موفقیت ادامه داد. او فوریه پیش در پنجاه و نهمین دوره جشنواره فیلم برلین با دریافت جایزه یک عمر دستاورد تقدیر ‌شد. دیتر کاسلیک مدیر جشنواره برلین در این باره گفت: آهنگسازان فیلم اغلب در سایه کارگردانان بزرگ و ستاره‌های بازیگری هستند، اما این مسئله درباره موریس ژار فرق می‌کند. "دکتر ژیواگو" مانند بیشتر آثار او شهرتی جهانی دارد و همچنان در تاریخ سینما فراموش‌نشدنی است.
Subscribe
ارسال در تاريخ شنبه بیست و دوم فروردین 1388 توسط سعيد

گروه اینترنتی پرشین استار | www.Persian-Star.org

گوگل تاكید دارد كه به نام های تجاری احترام می گذارد. به دنبال شكایت یك شركت تجاری معروف فرانسوی از گوگل و اعلام نظر مثبت دادگاه رسیدگی كننده به آن، وكلای گوگل از دادگاه اروپا در بروكسل تقاضای استیناف كرده اند.

شركت "ال وی ام اچ" (LVMH)، كه از جمله صاحب نام تجاری لوئی ویتون (Louis Vuittton)، است، گوگل را متهم كرده كه نام های تجاری، مانند لوئی ویتون را در این موتور جستجوگر اینترنتی به حراج گذاشته است تا هر خریداری كه حاضر باشد برای این نام ها پول بیشتری پرداخت كند، صاحب آن در جستجوهای گوگل شود. لوئی ویتون، در دنیای مد، بیش از هر كالای دیگری كه تولید می كند، بابت كیف و ساك های سفری خود شهرت دارد.

شركت ال وی ام اچ می گوید كاربران اینترنت كه نام لوئی ویتون را در قسمت جستجوی گوگل وارد می كنند با سایت هایی مواجه می شوند كه در واقع محل نشر آگهی های شركت های رقیب است یا مربوط به شركت هایی می شود كه محصولات تقلبی تولید می كنند. روری سلان-جونز، گزارشگر بی بی سی در امور فن آوری می گوید شكایت از گوگل در حالی مطرح شده است كه گوگل به طور روز افزونی به دلیل تسلط گسترده ای كه بر شبكه جهانی اینترنت دارد، مورد انتقاد قرار گرفته است.

او می گوید برخی از این انتقادها از سوی شركت های عظیم تولید نرم افزار، مانند مایكروسافت مطرح شده است اما شركت های رسانه ای و همچنین گروه هایی كه برای حفظ حریم خصوصی در اینترنت مبارزه می كنند نیز گوگل را مورد انتقاد قرار داده اند. گزارشگر بی بی سی می گوید گوگل نه تنها سهم بزرگی از آگهی های آنلاین را در اختیار دارد بلكه اطلاعات زیادی نیز از میلیون ها كاربر اینترنتی ذخیره كرده است. در سال 2005 گوگل در ارتباط با پرونده ای مشابه تقاضای استیناف كرد، كه شكست خورد.

این شكایت از سوی دو آژانس مسافربری فرانسوی مطرح شده بود كه نهایتا به جریمه 75 هزار یورویی گوگل انجامید. شركت ال وی ام اچ برای حفاظت از نام تجاری لوئی ویتون در اینترنت تلاش زیادی كرده است. در ماه ژوئن سال گذشته، دادگاهی در فرانسه به سایت معروف "ایی بی"، كه محل خرید و فروش آنلاین است، دستور داد 40 میلیون یورو به ال وی ام اچ جریمه پرداخت كند چون اجازه داده است نمونه های تقلبی كالاهای این شركت خرید و فروش شود.

ال وی ام اچ گفت كه سایت فرانسوی ایی بی برای جلوگیری از فروش كالاهای تقلبی با نام های تجاری این شركت، از جمله لوئی ویتون، كریستین دیور و ژیوانشی تلاش كافی نكرده است. گوگل در واكنش به اتهامات جدیدی كه علیه جستجوگر عظیم اینترنتی مطرح شده، گفته است كه به نام های تجاری احترام می گذارد. نتیجه دادگاه استیناف تا ماهها مشخص نخواهد شد.
Subscribe
ارسال در تاريخ شنبه بیست و دوم فروردین 1388 توسط سعيد

گروه اینترنتی پرشین استار | www.Persian-Star.org

به گزارش فارس به نقل از یو‌اس‌ای‌تودی، در بزرگترین نمایشگاه تلفن‌همراه آمریكای شمالی موسوم به CTIA Wireless كه هفته گذشته در لاس‌وگاس آمریكا برگزار شد، بیشتر گوشی‌های جدیدی برای بازارهای آمریكا فاقد صفحه‌كلید شماره‌ای بودند و در عوض از صفحه‌كلیدهای حروفی كامل و یا نمایشگرهای لمسی برای تایپ پیامك استفاده می‌كردند.

طبق آمارهای منتشر شده، مشتركان مخابراتی آمریكا طی سال گذشته بیش از یك تریلیون پیامك ارسال كردند كه این رقم نسبت به آمار منتشر شده برای سال 2007 افزایش 3 برابری را نشان می‌دهد. این افراد 2/2 تریلیون دقیقه تماس صوتی برقرار كردند كه این رقم نیز نسبت به تماس‌های صوتی سال 2007 گویای كاهش 5 درصدی است. این مسئله نشان می‌دهد كه كاربران بیش از گذشته به پیام‌های نوشتاری روی آورده‌اند.

موسسه تحقیقاتی NPD Group به تازگی اعلام كرد، 31 درصد تلفن‌های همراهی كه طی سه ماهه پایانی از سال گذشته میلادی در آمریكا فروخته شدند، صفحه‌كلید كامل QWERTY داشتند و كه این رقم نسبت به دو سال قبل رشد 5 درصدی در این زمینه را نشان می‌دهد.
Subscribe
ارسال در تاريخ شنبه بیست و دوم فروردین 1388 توسط سعيد

گروه اینترنتی پرشین استار | www.Persian-Star.org

به گزارش فارس به نقل از پی سی ورلد، بررسی های تازه موسسه ChangeWave نشان می دهد میزان رضایت این افراد از ویندوز 7 در مقایسه با ویندوز ویستا تا چهار برابر افزایش یافته است.
بر همین اساس 44 درصد افرادی كه در حال تست و بررسی تخصصی ویندوز 7 هستند می گویند از این نسخه بتا یا آزمایشی رضایت كامل دارند. جالب آنكه میزان رضایت همین افراد در زمان آزمایش و بررسی ویندوز ویستا تنها 10 درصد بوده است.
مهم ترین علت این افزایش رضایت بهبود عملكرد و كارآیی ویندوز 7، اشغال كمتر حافظه و سرعت بوت بسیار بالا اعلام شده است. پیش از این بررسی انجام شده بود كه از آمادگی 53 درصد شركت های مهم تجاری جهان برای مهاجرت از ویندوز XP و ویستا به ویندوز 7 خبر می داد.
Subscribe
ارسال در تاريخ شنبه بیست و دوم فروردین 1388 توسط سعيد

نگاشت URL در ASP.NET 2.0 :

يکي  از امکانات جديدي که در ASP.NET 2.0 معرفي شده است نگاشت URL  يا URL Mapping مي باشد.
نگاشت URL ، در حقيقت تعيين نام مستعار براي يک URL مي باشد . فرض کنيد شما صفحه اي با اين URL  داريد :


http://www.sample.com/Technology.aspx?CategoryID=1&CategoryName=Csharp&Version=2

براي کاربران به خاطر سپردن اين URL چندان ساده نمي باشد ، پس شما مي توانيد يک URL با نام مستعار به صورت زير تعريف کنيد که کاربران با وارد کردن اين آدرس به URL واقعي شما دسترسي پيدا کنند .


http://www.sample.com/Csharp2.aspx

در ASP.NET 1.x نيز اين کار امکان پذير بود و نياز به مقداري کد نويسي داشت ولي در ASP.NET 2.0 اين کار براحتي امکان پذير مي باشد.

ايجاد يک نگاشت URL :

به قطعه کد زير توجه نماييد .


<urlMappings enabled="true">

<add url="~/Csharp2.aspx" mappedUrl="~/Technology.aspx?CategoryID=1&CategoryName=Csharp&Version=2" />

<add url="~/VB2005.aspx" mappedUrl="~/Technology.aspx?CategoryID=2&CategoryName=VB&Version=2005" />

<add url="~/Flash8.aspx" mappedUrl="~/Technology.aspx?CategoryID=3&CategoryName=Flash&Version=8" />

urlMappings>

همانطور که مشاهده نموديد ما در Web.config در داخل تگ  تگ جديدي به نام  ايجاده کرده و صفت  enabled مربوط با آن را true نموده ايم. سپس در داخل آن براي 3 عدد از URL ها يمان ، نام مستعار تعيين کرده ايم.
در داخل عامل Add دو صفت را مقدار دهي نموده ايم .  صفت URL نام مستعار را نگهداري مي کند و صفت mappedUrl مقدار URL واقعي را نگهداري مي نمايد.
اکنون اگر کاربر آدرس  Csharp2.aspx را در نوار آدرس مرورگر خود وارد نمايد ، به محتواي صفحه  زير دست خواهد يافت .
Technology.aspx?CategoryID=1&CategoryName=Csharp&Version=2

در شکل زير اين وضعيت را مشاهده مي نماييد.

 


 



ادامه مطلب...
Subscribe
ارسال در تاريخ پنجشنبه بیستم فروردین 1388 توسط سعيد
گروه اینترنتی پرشین استار | www.Persian-Star.org

The best cosmetic for lips is truth
زیباترین آرایش برای لبان شما راستگویی

for voice is prayer
برای صدای شما دعا به درگاه خداوند

for eyes is pity
برای چشمان شما رحم و شفقت

for hands is charity
برای دستان شما بخشش

for heart is love
برای قلب شما عشق

and for life is friendship
و برای زندگی شما دوستی هاست
Subscribe
ارسال در تاريخ پنجشنبه بیستم فروردین 1388 توسط سعيد
  • بوسه: تعجب نکنید. درست خواندید. بوسه. یک کلمه kiss را به آدرس خود اضافه کنید. این کلمه را به قبل از youtube اضافه کنید. اگر آدرس شما www.youtube.com/xxxxxxx است آن را به www.kissyoutube.com/xxxxxx تبدیل کنید.
  • پلاگین YouTubeLoader: این پلاگین که مربوط به مرورگر فایرفاکس می باشد قادر است ویدئوهای یوتیوب را دانلود کند. این پلاگین یک لینک Download mp4 به پایین ویدئو اضافه می کند و شما را قادر به دانلود کردن آن می سازد.
  • YouTube Catcher: این برنامه اجازه می دهد شما لینک ویدئو یوتیوب را کپی و آن را دانلود کنید. برای استفاده از این برنامه باید flv player هم داشته باشید.
  • Tube Leecher:این روش بسیار ساده است. شاید ساده ترین روش موجود باشد. شما تنها کاری که باید انجام دهید این است که آدرس ویدئو را در باکس مربوطه وارد کنید. همین !

البته راه های دیگری نیز برای دانلود ویدئوهای یوتیوب وجود دارد. این روشها تنها چند نمونه برای این کار بود.

  • بوسه: تعجب نکنید. درست خواندید. بوسه. یک کلمه kiss را به آدرس خود اضافه کنید. این کلمه را به قبل از youtube اضافه کنید. اگر آدرس شما www.youtube.com/xxxxxxx است آن را به www.kissyoutube.com/xxxxxx تبدیل کنید.
  • پلاگین YouTubeLoader: این پلاگین که مربوط به مرورگر فایرفاکس می باشد قادر است ویدئوهای یوتیوب را دانلود کند. این پلاگین یک لینک Download mp4 به پایین ویدئو اضافه می کند و شما را قادر به دانلود کردن آن می سازد.
  • YouTube Catcher: این برنامه اجازه می دهد شما لینک ویدئو یوتیوب را کپی و آن را دانلود کنید. برای استفاده از این برنامه باید flv player هم داشته باشید.
  • Tube Leecher:این روش بسیار ساده است. شاید ساده ترین روش موجود باشد. شما تنها کاری که باید انجام دهید این است که آدرس ویدئو را در باکس مربوطه وارد کنید. همین !

البته راه های دیگری نیز برای دانلود ویدئوهای یوتیوب وجود دارد. این روشها تنها چند نمونه برای این کار بود.

Subscribe
ارسال در تاريخ سه شنبه یازدهم فروردین 1388 توسط سعيد
یکی از اعمالی که گاهی در برنامه های تحت ویندوز مورد نیاز می باشد، تغییر دادن زمان و تاریخ ویندوز می باشد که در این ترفند به انجام این عمل خواهم پرداخت.

بروز رسانی:

این ترفند در تاریخ 87/10/23 بروز رسانی شد. در نسخه قبلی از یک API به نام SetLocalTime استفاده شده بود که گویا این تابع در برخی نسخه های ویندوز XP عملکرد صحیحی از خود نشان نمی دهد. لذا نسخه جدید را با استفاده از یک API دیگر به نام SetSystemTime نوشتم که به نظر می رسد مشکل مربوطه رفع شده است.

شروع:

چند روز قبل، یکی از دوستان سوالی پرسیده بود در مورد تغییر دادن زمان و تاریخ ویندوز با استفاده از برنامه نویسی.
جالب دانستم که روش مورد نظر را به شکل یک ترفند مطرح کنم.
تغییر دادن زمان و تاریخ ویندوز با استفاده از یک API به نام
SetSystemTime که در kernel32 قرار دارد، انجام می شود.
قبل از هر کاری باید فضای نامی زیر را به بالای کلاس خود اضافه کنید.

using System.Runtime.InteropServices;

API مورد نظر به شکل زیر تعریف می شود.

[DllImport("kernel32.dll")]

static extern bool SetSystemTime(ref SYSTEMTIME time);

همانطور که ملاحظه می کنید، پارامتر ورودی تابع SetSystemTime از نوع استراکچر SYSTEMTIME می باشد. این استراکچر را نیز به شکل زیر در کلاس تعریف می کنیم.

[StructLayoutAttribute(LayoutKind.Sequential)]

private struct SYSTEMTIME

{

    public short year;

    public short month;

    public short dayOfWeek;

    public short day;

    public short hour;

    public short minute;

    public short second;

    public short milliseconds;

}

اکنون تابعی را می نویسیم که یک متغیر از نوع DateTime را گرفته و تاریخ و زمان ویندوز را به آن تغییر می دهد.

private void ChangeDateAndTime(DateTime NewTime)

{

    SYSTEMTIME st;

    st.year = (short)NewTime.Year;

    st.month = (short)NewTime.Month;

    st.dayOfWeek = (short)NewTime.DayOfWeek;

    st.day = (short)NewTime.Day;

    st.hour = (short)NewTime.Hour;

    st.minute = (short)NewTime.Minute;

    st.second = (short)NewTime.Second;

    st.milliseconds = (short)NewTime.Millisecond;

    //Call API

    SetSystemTime(ref st);

}

نکته بسیار مهم:

تاریخ ارسال شده برای تابع بالا حتما باید با فرمت UniversalTime باشد.

در قطعه کد زیر نحوه استفاده از این قطعه کد را ملاحظه می نمایید.

//Change Date to  6/5/1965 (DD/MM/YYYY) and time to 21:20:30

DateTime dateTime = new DateTime(1965, 5, 6, 21, 20, 30, 10).ToUniversalTime();

MessageBox.Show("Now Before : " + DateTime.Now);

 

ChangeDateAndTime(dateTime);

 

MessageBox.Show("Now After : " + DateTime.Now);



ادامه مطلب...
Subscribe
ارسال در تاريخ یکشنبه نهم فروردین 1388 توسط سعيد
پیدا کردن منطقه(locale) فعال در سیستم

همانطور که می دانید ویندوز فرهنگهای مختلف یا اصطلاحا منطقه (locale) های مختلفی را در روی یک کامپیوتر نگهداری می کند. گاهی اوقات مهم است که بدانیم منطقه جاری برنامه ما کجاست. مثلا فرض کنید در یک برنامه تحت ویندوز می خواهید در یک تکست باکس پسورد وارد کنید. به منظور یافتن فرهنگ جاری و فعال سیستم و در صورت لزوم هشدار دادن به کاربر، می توانید از کد زیر استفاده نمایید:



// به عنوان مثال  "en"
string currentISOLangStr = InputLanguage.CurrentInputLanguage.Culture.TwoLetterISOLanguageName;

//به صورت عددی و صحیح مثلا 1033
int currentLangId = InputLanguage.CurrentInputLanguage.Culture.KeyboardLayoutId;



ادامه مطلب...
Subscribe
ارسال در تاريخ یکشنبه نهم فروردین 1388 توسط سعيد
در این ترفند به معرفی روش تلفیق نمودن چند فایل خارجی جاوا اسکریپت در یک فایل با استفاده از امکانات جدید ASP.NET Ajax 3.5 می پردازم.

اضافه نمودن فایل های جاوا اسکریپت به صفحات وب معمولا به شکل زیر انجام می گیرد.


<script language="javascript" type="text/ecmascript" src="Sample1.js" />

با استفاده از خصوصیت Scripts مربوط به کنترل ScriptManager می توان این عمل را به شکل زیر انجام داد.


<asp:ScriptManager ID="ScriptManager1" runat="server">
   <Scripts>
      <asp:ScriptReference Path="~/Sample1.js" />
   Scripts>
asp:ScriptManager>

مشکل اینجاست که به ازای هر فایل جاوا اسکریپت، مرورگر باید یه درخواست (Http Request) جدید ارسال نماید و تا زمان بارگزاری کامل فایل، سایر عناصر HTML صفحه لود نمی شوند.
ارسال یک درخواست HTTP می تواند بسیار زمانبر باشد. مثلا برای سروری که در ایالات متحده امریکا قرار دارد، اگر درخواست از کامپیوتری در خود ایالات متحده باشد، این عمل حدود 100 میلی ثانیه طول می کشد. در صورتی که کامپیوتری در آسیا این درخواست را انجام بدهد در حدود 270 میلی ثانیه و در صورتی که یک کامپیوتر در استرالیا این درخواست را ارسال نماید،حدود 380 میلی ثاینه زمان می برد.
دقت کنید که زمانی که ارسال یک درخواست HTTP صرف می کند را باید با زمانی که بارگزاری فایل طول می کشد جمع کنید تا زمان کل بار گزاری فایل بدست آید.
حال فرض کنید که شما 5 عدد فایل جاوا اسکریپت را به صفحه اضافه نموده اید. پس مرورگر باید 5 درخواست ارسال نماید. در نتیجه اگر سرور شما در امریکا بوده و کامپیوتر شما در آسیا این درخواست را ارسال نماید، 270*5 میلی ثانیه فقط ارسال درخواست ها زمان می برد و به ازای هر درخواست، مرورگر لود صفحه را متوقف می نماید.
به همین دلیل همیشه توصیه می شود که سعی کنید کدهای موجود در فایل های جاوااسکریپت را با هم تلفیق کنید و آنها را در قالب یک فایل به صفحه اضافه نمایید.
درست است که در این حالت حجم فایل بسیار بیشتر می شود و لود تمام اسکریپت ها در یک فایل بسیار کمتر از لود کدها در چندین فایل خارجی زمان می برد.
ولی انجام این کار در عمل چندان ساده نمی باشد. تلفیق کدهای جاوا اسکریپت چند فایل در یک فایل ممکن است مشکلاتی از قبیل ناخوانایی کدها و تشابه نام متغیرها و غیره را به وجود آورد.
یکی از ویژگیهای بسیار جالبی که در نسخه ASP.NET AJAX 3.5 SP1 اضافه شده است، ویژگی CompositeScript می باشد.
استفاده از این خصوصیت همانند استفاده از خصوصیت Scripts می باشد. ولی عملکرد آن متفاوت می باشد.
با استفاده از این صفت دیگر شما لازم نیست که کدهای موجود در فایل های مجزای جاوا اسکریپت را در یک فایل تلفیق کنید. در صورتی که شما فایل های خود را با استفاده از این ویژگی به ScriptManager اضافه کنید، خود برنامه در سمت سرور اسکریپت ها را در یک فایل تلفیق نموده و سپس به سمت مرورگر ارسال می نماید.
استفاده از ویژگی CompositeScript به شکل زیر می باشد.


<asp:ScriptManager ID="ScriptManager1" runat="server">
   <CompositeScript>
      <Scripts>
         <asp:ScriptReference Path="~/Sample1.js" />
         <asp:ScriptReference Path="~/Sample2.js" />
         <asp:ScriptReference Path="~/Sample3.js" />
         <asp:ScriptReference Path="~/Sample4.js" />
         <asp:ScriptReference Path="~/Sample5.js" />
      Scripts>
   CompositeScript>
asp:ScriptManager>

با استفاده از این روش به آسانی می توانید به طور موثری کارایی صفحات وب را بالا ببرید.



ادامه مطلب...
Subscribe
ارسال در تاريخ یکشنبه نهم فروردین 1388 توسط سعيد
نصب و حذف ويندوز سرويس

شاید گاهی اوقات بخواهید یک ویندوز سرویس را به هنگام کدنویسی نصب کنید، اما ماشین هدف، فاقد InstallUtill.exe میباشد.
شما می توانید کدی بنویسید که  آن ویندوز سرویس را برای شما نصب کند.
برای اینکار ابتدا رفرنس System.Configuration.Install را به برنامه خود اضافه کنید و از کد زیر استفاده کنید:

public static void InstallService(string ExeFilename)

{

    System.Configuration.Install.AssemblyInstaller Installer = new System.Configuration.Install.AssemblyInstaller(ExeFilename);

    Installer.UseNewContext = true;

    Installer.Install(null);

    Installer.Commit(null);

}

 

برای حذف سرویس:                                                            

public static void UninstallService(string ExeFilename)
{
    System.Configuration.Install.AssemblyInstaller Installer = 
new System.Configuration.Install.AssemblyInstaller(ExeFilename);
    Installer.UseNewContext = true;
    Installer.Uninstall(null);
}


 

Subscribe
ارسال در تاريخ یکشنبه نهم فروردین 1388 توسط سعيد
در این ترفند، روش دسترسی به مقدار فیلد های بایند شده در ListView مورد بررسی قرار می گیرد

همانطور که می دانید، دیتا کنترل های موجود در ASP.NET از قبیل GridView و Repeater دارای خصوصیتی به شکل e.Item.DataItem هستند که به صورت زیر می توان هنگام بایند شدن اطلاعات ، به مقدار فیلد مورد نظر دسترسی پیدا کرد.


DataBinder.Eval(e.Item.DataItem, "CategoryID");

ولی کنترل جدید  ListView در ASP.NET 3.5 دارای صفتی به نام DataItem نیست.
 با استفاده از تکنیک زیر می تواند به مقدار مورد نظردر ListView دسترسی پیدا کرد.


((DataRowView)((ListViewDataItem)e.Item).DataItem)["CategoryID"].ToString()

موفق باشید.



ادامه مطلب...
Subscribe
ارسال در تاريخ یکشنبه نهم فروردین 1388 توسط سعيد
در این مقاله با استفاده از متدهای توسعه گر (Extension Methods)، متدی جنریک جهت تبدیل یک لیست جنریک به Datatable خواهیم نوشت

تذکر :

برای درک صحیح روش انجام گرفته در متدهای این مقاله، آشنایی مقدماتی با مقوله Reflection الزامی می باشد.

برای تبدیل لیست مورد نظر به یک DataTable ما از یک متد توسعه گر (Extension Method) استفاده نموده ایم. و این متد در داخل خود متد دیگری را فراخوانی می کند.

به قطعه کد زیر توجه فرمایید.


public static DataTable ConvertToDatatable(this IList GenericList, IList list)
{
   DataTable table = new DataTable();
   if (list.Count > 0)
   {
      // بازیابی خصوصیات لیست
      PropertyInfo[] properties = list[0].GetType().GetProperties();
      List<string> columns = new List<string>();
      // ایجاد ستون های جدول با استفاده از نام و نوع خصوصیات لیست
      foreach (PropertyInfo pi in properties)
      {
         table.Columns.Add(pi.Name);
         columns.Add(pi.Name);
      }
       foreach (T item in list)
      {
         // به ازای تمامی آیتم های موجود در لیست این تابع فراخوانی شده
         //و با هر بار فراخوانی آرایه ای از مقادیری که باید به جدول اضافه شوند، برگردانده می شود
      object[] cells = GetValues(columns, item);
      table.Rows.Add(cells);
       }
   }
return table;
}
///

///
www.30sharp.com
///

///
این لسیت شامل نام ستون های جدول و یا به عبارت دیگر نام خصوصیات لیست می باشد
///
آیتمی که قرار است مقادیر خصوصیات آن در در یک رکورد جدول ذخیره کنیم
///
آرایه ای که شامل مقادیر خصوصیات آیتم ارسال شده به متد می باشد
private static object[] GetValues(IList<string> listOfColumnNames, object instance)
{

   object[] arrColumnValues = new object[listOfColumnNames.Count];

   for (int n = 0; n < arrColumnValues.Length; n++)
      {
         // بازیابی خصوصیت مر آیتم بر اساس نام خصوصیت
         PropertyInfo pi = instance.GetType().GetProperty(listOfColumnNames[0]);
         // باز یابی مقدار خصوصیت
         object value = pi.GetValue(instance, null);
         // ذخیره مقدار بازیابی شده در آرایه
         arrColumnValues[n] = value;
      }
   return arrColumnValues;
}

قطعه کد کاملا واضح می باشد.

متد GetValues لیستی از نام ستون های جدول و آیتمی از لیست که قرار است مقادیر آن بازیابی شود را دریافت می کند و مقادیری که باید در هر ستون ذخیره شوند را به صورت آرایه ای از آبجکت ها، برمی گرداند.

نحوه استفاده از قطعه کد بالا به شکل زیر می باشد. فرض می کنیم کلاسی به نام User داریم که مشخصات کاربران شامل نام و نام خانوادگی و غیره را نگهداری می کند.


public class User
{
   public string FName { get; set; }
   public string LName { get; set; }
}
// نحوه استفاده
List<User> lst = new List<User>() ;
// پر کردن لیست 
//...
//...
DataTable tb= lst.ConvertToDatatable(lst);



ادامه مطلب...
Subscribe
ارسال در تاريخ یکشنبه نهم فروردین 1388 توسط سعيد
قالب وبلاگ

CopyRight Of Unicomp.ir