View Full Version : ظهور دات نت 3.5
choobin84
سه شنبه 15 خرداد 1386, 10:51 صبح
http://help2us.com/portal/modules.php?name=News&file=article&sid=3
دستورات اس کیو ال را همانند دیگر دستورات در سی شارپ بنویسید.
aidinwashere
سه شنبه 15 خرداد 1386, 14:38 عصر
فکر میکنم هدف LINQ هم همین باشه.
dot_net_lover2
سه شنبه 15 خرداد 1386, 17:07 عصر
توضیحاتی در مورد LINQ
(منبع را یادم نمی آید.)
کارشناسان طراحی زبانهای برنامهنویسی در شرکت مایکروسافت مدتی است برای پیدا کردن یک راهحل برای این مسئله، روی زبان لینک کار میکنند. این زبان البته یک زبان جدید برنامهنویسی در کنار سیشارپ و ویژوال بیسیک نیست، بلکه یک syntax است که درون کدهای برنامه به کار گرفته میشود.
Dim q = _
From c In Customers_
Where c.City = "Tehran"
Select c
این قطعه کد به قدری گویا است که حتی کسی که برنامهنویس نیست نیز متوجه معنی آن میشود. تاکنون بهکارگیری چنین منطقی در زبانهای برنامهنویسی شیگرا سابقه نداشته است. این syntax خیلی به منطق و زبان انسان شبیه است. به همین دلیل استفاده از آن باعث ساده شدن زبان برنامهنویسی میشود.
تیم توسعه پلتفرم داتنت در مایکروسافت برهمیناساس در حال طراحی و توسعه دو API برای زبان LINQ است. یکی از اینها مجموعه DLINQ است که برای پیاده سازی زبان لینک روی ADO.NET به کار میرود. دیگری XLINQ نامیده شده که برای امکانپذیر ساختن استفاده از منطق لینک روی XML به کار میرود.
کوشش بر این است که syntax برنامهنویسی در هر دو مورد مشابه زبان SQL باشد. به گونهای که برنامهنویسی بدون توجه به اینکه از کدام API زبان لینک استفاده میکند، به یک شیوه بتواند با دادهها کارکند.این APIها قرار است در چارچوب داتنت 3 (نسخه نهم زبان ویژوال بیسیک و نسخه سوم زبان سی شارپ) بهکار گرفته شوند.
یکی از اهدافی که این تیم از بهکارگیری منطق لینک در زبانهای برنامه نویسی داتنت دنبال میکند، امکانپذیر ساختن اشکال زدایی از عبارات Query است.
اگر برنامهنویس باشید، حتماً میدانید که تمام قسمتهای یک کد منهای عبارات Query که به صورت رشتههای متنی میآیند، قابل اشکالزدایی یا Debugging هستند. قرارگرفتن عبارات Query به صورت مقادیر متنی داخل سورس کد، عملاً اشکالزدایی از آنها را دشوار میکند. با بهکارگیری منطق زبان لینک این مشکل به مقدار زیادی حل میشود؛ زیرا Queryها بهجای اینکه به صورت مقادیر متنی نوشته شوند، بخشی از سورس کد هستند. به همین دلیل این تکنیک Language Integrated Query نامگذاری شده است.
تیم توسعه دات نت حتی به این موضوع فکر کرده است که استفاده از ابزار Intellisense در ویرایشگر کد ویژوال استودیو بتواند روی زبان لینک مانور دهد. این چیزی است که عملاً روی API متعلق به بخشهای DLINQ و XLINQ اتفاق میافتد. در نتیجه برنامهنویس میتواند کد LINQ را کامپایل نماید و در صورت بروز خطا آن را اشکالزدایی کند.استفاده از XLINQ برنامهنویسان را از بهکارگیری منطق XQuery که گاهی گیجکننده است، معاف میکند؛ ضمن اینکه برای کارکردن با دادهها در ADO.NET و لایه Business Tier میتوانید از همان منطق و رهیافت زبان SQL در بانکاطلاعات استفاده کنید.
Behrouz_Rad
سه شنبه 15 خرداد 1386, 17:54 عصر
دات نت 3.5، سه ماه پیش در CTP معرفی و ماه پیش، نسخه ی بتای اون برای داونلود عرضه شد.
LINQ تنها بخشی از اون هست. به طور عمده 5 امکان جدید به دات نت 3.5 اضافه شده که از جمله میشه به ASP.NET AJAX، ابزارهایی برای استفاده ی راحت تر از WF، WCF و WPF، امکان ایجاد آسان برخی سرویس ها همانند RSS، ATOM، POX و اضافه شدن تعدادی کلاس های جدید اشاره کرد.
موفق باشید.
PC2st
سه شنبه 15 خرداد 1386, 20:36 عصر
علاوه بر گفته های دوستان، منم یکسری توضیحات کوچولو بگم.
( برای سی شارپ 3 و نسخه دات نتش رو دقیق نمیدونم... )
1. انواع ضمنی متغیرهای محلی : لازم نیست که نوع یک داده رو بطور صریح اعلان کنید!
بعبارت دیگه، کد var m = 10; معادل int m = 10; خواهد بود!
2. متدهای الحاقی: از این به بعد، یک member از کلاس خود را در داخل یک کلاس دیگر، قرار دهید! مثلا متد ToInt64 را برای شئ ایجاد شده از کلاس string اضافه کنید! مثلا مثل زیر:
string s = "Well";
Int64 i = s.ToInt64();
3. عبارتهای lambda : دقیقا نفهمیدم چیه! ولی مثل اینکه یه چیزی تو مایه های متدهای بی نام باشه ولی با امکانات بیشتر (!)
4. این مورد رو با یک مثال مینویسم:
مثلا یک کلاس داریم به نام ABC و این کلاس دارای دو خاصیت بنامهای X و Y هست، دیگه لازم نیست که هر کدوم رو جدا مقدار اولیه بدیم کنیم، بلکه با یک } و { کار راحت تر صورت میگیره.
var m = new ABC() { X=0, Y=23 };
و مثلا برای کلاسهائی که collection مانند هستند مثل List و ...
میشه به شکل زیر، لیست رو پر کرد به جای اینکه تک تک داده ها رو بهش add کنیم.
مثلا میخوایم از کلاس List یک نمونه بسازیم و از اعداد 1 تا 10 پر کنیم.
List<int> m = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
5. انواع بدون نام : انواعی که حاوی خاصیتهائی خواندنی/نوشتنی هستند و سریع، ایجادشون میکنید! مثلا یک شئ داریم بنام m حالا میخوایم که این شئ، سه تا خاصیت بنامهای X و Y و Z باشه و مقداردهیش کنیم، مثل زیر عمل میکنیم:
var m = new { X = 0, Y = 10, Z = 5 };
6. آرایه های از نوع ضمنی : براحتی آرایه هاتون رو ایجاد و مقدار دهی کنید، این نوع آرایه ها، میتوانند با انواع بدون نام، ترکیب شده تا آرایه هائی زیبا برای خود داشته باشید! مثلا، یک آرایه یک بعدی به طول 3 د
PC2st
سه شنبه 15 خرداد 1386, 22:46 عصر
پست قبلی رو ویرایش کرده بودم! بقیه پست پریده رفته هوا...!
بقیه مطلب رو اینجا مینویسم: :-)
6. آرایه های از نوع ضمنی : براحتی آرایه هاتون رو ایجاد و مقدار دهی کنید، این نوع آرایه ها، میتوانند با انواع بدون نام، ترکیب شده تا آرایه هائی زیبا برای خود داشته باشید! مثلا، یک آرایه یک بعدی به طول 3 داریم، حالا میخواهیم کاری کنیم که هر عنصر از آرایه، دارای دو خاصیت بنام Name و ID باشه، و خاصیت ID هم یک آرایه به طول 2 باشه!!! و عنصر سوم از آرایه، خاصیت ID اش آرایه ای به طول یک باشه!
مثل زیر:
var m = new[] {
new { Name = "Hello", ID = new[] { "112-2", "554-3" } },
new { Name = "Good Bye", ID = new[] { "142-5", "545-2" } },
new { Name = "Hello", ID = new[] { "11A-ASD-DD2" } }
};
7. عبارات پرس و جوئی : Query Expressions ...
8. Expressions Tree : برای کامل کردن مورد سوم بکار میره.
موارد گفته شده، اشاره ی کوچکی بود از مقاله ای که قبلا از سایت مایکروسافت دانلود کرده بودم.
لینک دانلود مقاله موجود در مایکروسافت درباره ی سی# 3 (http://download.microsoft.com/download/9/5/0/9503e33e-fde6-4aed-b5d0-ffe749822f1b/csharp%203.0%20specification.doc)
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.