مقاله های ترجمه شده بسیار مفید جهت یادگیری طراحی و مدیریت بانكهای اطلاعاتی (SQL Server) برای مشاهده مقاله ها بر روی نام مقاله کلیک نمائید...همچنین به مرور آموزش ها نیز در اینجا قرار خواهند گرفت.
آیا java script واقعا یک زبان برنامه نویسی سخت است که کسی که خواستار طراحی صفحات وب است باید از آن بترسد؟چگونه از آن استفاده کنیم؟امیدواریم در این آموزش ما قادر به پاسخگویی این سوالات برای شما باشیم.در حال حاضر جاوا اسکریپت در حدود چند سال است که در زمینه های مختلف وجود دارد.
مزیت اصلی آن تنها با کمی کار اضافه توسط توسعه دهنده ی وب برای اضافه کردن تعامل بیشتر بین وب سایت ها و بازدید کندگان آن است.
جاوا اسکریپت به مدیر وب سایت اجازه میدهد برای بالا بردن
بازدهی سایت ازcssو html استفاده کند.
با این تعریف java scriptیک زبان برنامه نویسی در سمت سرویس گیرنده است. این به این معناست که مرورگر وب باید دستورات را در سمت کاربر اجرا کند.مخالف سرویس گیرنده، سرویس دهنده است که در php مشاهده میشود. کد های php در سمت میزبان سرویس دهنده وب اجرا میشوند.
از زبان قدرتمندjava script استفاده های زیادی(و شاید هم سو استفاده های!)زیادی میشود.
در زیر چند نمونه است که شما در گشت و گذار روزانه در وب ممکن است ببینید یا شاید هم نه:
·ساعت
·دنباله موس(یک پویانمایی در زیر موس وقتی که در سایت گردش میکنید.)
·منو های بازشونده
·پیغام های هشدار
·پنجره Popup Windows
·اعتبار سنجی داده های فرم html
بازنگری آموزش:
قبل ازآموزش شما باید یک دانش پایه از html داشته باشید،این آموزش اصولی از java script را پوشش میدهد که از اینجا و در تمام طول راه برای ساختن توابع java scriptاز آن استفاده میکنید.همچنین در طول این عمل آموزش،برخی از راهنمایی های خوب برنامه نویسی وجود خواهد داشت.ما توصیه می کنیم که شما با خواندن چند درس در روز و تمرین آنچه آموخته اید برای جذب موارد به آسانی استفاده کنید.
چگونه به صورت java script بنویسیم؟
اگرشما قبلا همیشه از css استفاده میکرده اید بسیار ساده تر میتوانید برخی از جملات java script را درک کنید.
سه مرحله مهم است که شما باید همیشه در هنگام ایجاد و یا استفاده از کد جاوا اسکریپت به دنبال آن باشید.
·استفاده از تگ های برنامه نویسی که در java script مورد استفاده قرار میگیردبرای ارتباط با مرور گر.
·نوشتن کد java script
·تست برنامه
چیز های مختلف زیادی است که ممکن است به اشتباه در یک قطعه کد java وجود داشته باشد مانند:
خطاهای انسانی، مسائل مربوط به سازگاری مرورگر،یا تفاوت سیستم عامل ها، بنابرین وقتی که از java script استفاده میکنید نتیجه کدها را بر روی طیف گسترده ای از سیستم ها و از همه مهمتر بر روی مرورگر های وب متفاوت امتحان نمایید.
اولین کد java script برای شما:
به پیروی از نمونه های کلاسیک بسیاری از آموزش های برنامه نویسی اجازه دهید از جاوا اسکریپت برای چاپ "Hello World" در مرورگر استفاده نماییم میدانیم که این زیاد جالب توجه نیست اما یک راه خوب برای توضیح همه موارد مورد نیاز برای انجام کاری در جاوا اسکریپت است.
HTML & JavaScript Code:
Display:نمایش در صفحه
Hello World!
دراولین قدم با استفاده از یک کد که با تگ <SCRIPT> مشخص شده باید مرورگرصحبت کرد در مرحله بعد باید نوع کد را تنظیم نمود که برابر است با:"text/JavaScript"
شما ممکن است متوجه شده باشید که انجام این کار شبیه به راه شما در cssاست که در آن صورت اینطور نوشته میشد:
"text/css"
بعد از آن در تگ html از توضیحاتی استفاده کرده ایم که با تگ --!> شروع شده کهاگر مروررگر ما java script را پشتیبانی نکند کد ما در متن ساده به کاربر نمایش داده نمیشود این نمونه باید با "//-->"به پایان برسد زیرا "//"
بریک نمونه java script دلالت دارد.
این خط برای جلوگیری مرورگر از خواندن کد به صورت HTMLبه جای یک قطعه از کد جاوا اسکریپت اضافه میشود.
Document.write در java script:
درمرحله آخر از کد باید از تابعی که Document.write
نامیده میشود استفاده کردکه یک رشته را در سند HTML خود می نویسد
Document.write میتواند برای نوشتن متن و htmlو یا یک کمی از هر دو مورد استفاده قرار بگیرد.تصویب رشته معروف"Hello word!" از متن به تابع که آن را به روی صفحه نمایش چاپ میکند.نگران نباشید اگر شما به طور کامل نمی دانید که سند چگونه کار میکند در مورد توابع در درس بعد بحث خواهد شد.
به کد java بالا نگاه کنید وتوجه داشته باشید که هیچ نقطه و ویرگول در پایان این بیانیه وجود ندارد "document.write(Hello World!)"
چرا؟ درجاوا اسکریپت به استفاده از سمیکالن که به معنی پایان هر یک ازجملات است، نیازی نیست.
اگر شما یک برنامه نویس با تجربه هستید و ترجیح می دهید از سمی کالن استفاده نمایید آزاد به انجام این کار میباشید در java scriptبا انجام این کار خرابی ایجاد نمیشود، تنها در زمانی از سمی کالن استفاده نمایید که در یک خط دو دستور نوشته شده باشد .
برای ایجاد یک ستون اصلی در sql از کلیدواژه ی PRIMARY KEYباید استفاده کنید. مثال:
CREATE TABLE Persons
(
PersonID int identity(1,1) PRIMARY KEY NOT NULL,
FirstName nvarchar(20),
LastName nvarchar(20) NOT NULL
);
محدودیت های کلید اصلی:
شما همچنین می توانید یک کلید اولیه به عنوان یک محدودیت ایجاد کنید،فرمولی که استفاده میشود به صورت زیر است.
CONSTRAINT PrimaryKeyName PRIMARY KEY(ColumnName)
و این یک مثال است:
CREATE TABLE Persons
(
PersonID int identity(1,1) NOT NULL,
FirstName nvarchar(20),
LastName nvarchar(20) NOT NULL,
CONSTRAINT PrimKeyPeople PRIMARY KEY(PersonID)
);
بر اساس یک کنوانسیون یا سنت اسمی که برای کلید اصلی انتخاب میشود به صورت(pk_table name) تعریف میشود،یک مثال:
USE Exercise2;
GO
CREATE TABLE Persons
(
PersonID int identity(1,1) NOT NULL,
FirstName nvarchar(20),
LastName nvarchar(20) NOT NULL,
CONSTRAINT PK_Persons PRIMARY KEY(PersonID)
);
GO
کلید خارجی:
برای ایجاد کلید خارجی در sql فرمول پایه ای که استفاده میشود به صورت زیر است:
CREATE TABLE Persons
(
PersonID int identity(1,1) PRIMARY KEY NOT NULL,
FirstName nvarchar(20),
LastName nvarchar(20) NOT NULL,
GenderID int NULL FOREIGN KEY REFERENCES Genders(GenderID)
);
محدودیت برای کلید خارجی:
برای ایجاد کلید خارجی محدودیتی وجود دارد، از کلید واژه ی CONSTRAINTاستفاده کرده و ادامه به صورتی که در بالا گفته شد می باشد .
مثال:
CREATE TABLE Persons
(
PersonID int identity(1,1) PRIMARY KEY NOT NULL,
FirstName nvarchar(20),
LastName nvarchar(20) NOT NULL,
GenderID int NULL CONSTRAINT FKGenders
FOREIGN KEY REFERENCES Genders(GenderID)
);
اضافه کردن یک ستون به جدول در sql
برای اضافه کردن یک ستون جدید به جدول از فرمول زیر استفاده میشود:
ALTER TABLE TableName
ADD ColumnName Properties
مثال:
ALTER TABLE StaffMembers
ADD Address varchar(100) NULL
GO
وقتی که این کد اجرا میشود یک ستون جدید به نام آدرس با نوع داده ای varchar با حداکثر طول 100 کاراکتر که به صورت خالی پر شده است باید به جدولی که StaffMembers نام دارد اضافه شود
برای استفاده از کد نمونه،ابتدا ویندوز یک پرس و جوی خالی نمایش میدهد و بعد یک قالب Explorer نمایش میدهد.برای گسترش گره ی جدول،در زیر جدول،بکشید ستون اضافه شده را و بیاندازید آن را در پنجره ی پرس و جو ها سپس پاک کنید بخش هایی از کد که مورد نیاز شما نیست و نگهداری کنید تنها بخش هایی را که مورد نیاز شما است در جدول تازه ایجاد شده.
اگر می خواهید نام پایگاه داده بصورت کلمات مختلف باشد آن کلمات را بصورت زیر در براکت می گذاریم:
CREATE DATABASE [Bethesda Car Rental];
برای شروع از یک نمونه ، کد پنجره پرس و جو Query را باز کرده سپس از منوی view پنجره Template Explorer را باز می کنیم و قسمت Database را گسترش Expand می دهیم و به قسمت Create Database را در پنجره query , drag می کنیم
-- =============================================
-- Create database template
-- =============================================
USE master
GO
-- Drop the database if it already exists
IF EXISTS (
SELECT name
FROM sys.databases
WHERE name = N''
)
CREATE DATABASE
GO
یا به طور عینی برای ایجاد یک database , Microsoft SQL Server Management Studio را باز می کنیم در پنجره Object Explorer قسمت نام سرور را expand می کنیم تا به نود Database برسیم سپس روی Databases کلیک راست کرده و روی New Database کلیک می کنیم
در جعبه متن نام، نام مورد نظر از پایگاه داده را وارد کنید به عنوان مثال
اصل و اساس برنامه نویسی اندروید بر پایه جاوا است. در این بین چندین و چند واژه وجود دارد که مختص خود اندروید است و در جاوا تعریف نشده است. از آنجا که – بعضی اوقات – یادگیری واژگان جدید باعث اعصاب خوردی! می شوند، تصمیم دارم به زبان ساده و خیلی مختصر مهمترین آنها را توضیح دهم. بدیهی است از آنجا که متن کاملاً تخصصی است منظور از زبان ساده، سادگی درک برای عموم افراد نیست بلکه منظور برنامه نویسان است.
اکتیویتی ها (Activities)
اکتیویتی، واسط گرافیکی است که کل صفحه نمایشگر را در اختیار بگیرد. اکتیویتی میتواند از چندین View تشکیل شده باشد یا به UI عملکرد مورد نیازش را بدهد. بعنوان مثال برنامه ارسال ایمیل. میتواند شامل دو اکتیویتی باشد. یکی شامل تمامی ایمیل هایی که دریافت کرده ایم، دیگری اکتیویتی که شامل محیط نوشتن ایمیل و ارسال آن باشد. هر دو اکتیوی به هم مربوط می باشند ولی عملکرد آنها کاملاً مستقل از یکدیگر است.
سرویس ها (Services)
یک سرویس در بک گراند (background) اجرا میشود و UI یا واسط کاربری ندارد. مثالی برای سرویس ها اطلاعی (notification) است که بوسیله زنگ و روشن شدن صفحه نمایشگر در زمان دریافت SMS یا ایمیل و یا زمانیکه کسی با ما تماس میگیرد، ارسال میشود.
Content providers (تامین کنندگان محتوا!)
از طریق Content provider ها دسترسی به تمامی اطلاعات ذخیره شده در گوشی – توسط برنامه های دیگر و یا برنامه ای که ما مینویسیم – امکان پذیر است. برای اینکه سایر برنامه ها بتوانند به اطلاعات دسترسی داشته باشند، معمولاً اطلاعات در فایل ها یا دیتابیس ذخیره میشوند.
Layout (قیافه!:) )
Layout ها شامل المانهای طراحی واسط کاربری هستند. هر زمانیکه یک فایل XML برای واسط کاربری ایجاد میکنیم، نیاز به Layout داریم تا طراحی ما را در خودش نگه دارد. در مورد Layout ها در نوشته های بعدی شرح ییشتری خواهم داد. پنج نوع Layout مختلف داریم که حتی میتوانند تو در تو بکار گرفته شوند.
View
View یک عضو مستقل (single object) در واسط کاربری است. View در داخل Layout قرار میگیرد و از ترکیب View ها ساده ترین تا پیچیده ترین واسط های گرافیکی و غیر گرافیکی کاربری ساخته میشود. بعنوان مثال، برچسب (Label) یک نوع View است. اندروید این قابلیت را دارد که ما طرحهای گرافیکی خود را بر اساس XML تولید کنیم و در قسمت کد صرفاً به عملکرد (functionality) برنامه بپردازیم و بدین سبب از پیچیدگی برنامه بکاهیم.
اتفاقات (Events)
Event ها اتفاقاتی هستند مانند کلیک کردن یا لمس کردن، که برای دریافت این اتفاقات متد Listener آن اتفاق باید تعریف شود. Event اتفاقی است که از بیرون رخ میدهد؛ چیزی است که کنترل آن دست ما نیست؛ یا حتی چیزیست که ما نمیدانیم کی اتفاق میافتد. بدین منظور کنترلر های اتفاق (Events controllers) مورد استفاده قرار میگیرند. این امکان وجود دارد که برای هر اتفاقی که رخ میدهد به سیستم بگوییم که چه کاری انجام دهد. معمول ترین اتفاق دریافت لمس صفحه نمایشگر است که برای دریافت آن Listener مورد نیاز باید تنظیم شود.
منابع (Resources)
منابع، المانهای خارجی هستند که ما در برنامه خود بکار میگیریم. آنها در فولدر “res” ذخیره میشوند و میتوانند فایلهای تصویری، صوتی مانند عکس، فیلم، انیمیشن و موزیک باشند. همچنین فایلهای XML که شامل طراحی های پوسته، واسط کاربری و تم ها هستند، در این پوشه ذخیره میشوند. وقتی عملیات کامپایل انجام میشود، آنها بطور کامل از طریق کدهای جاوا قابل دسترسی هستند.
اولین پروژه
این پروژه از این نظر که تمام قسمت های مختلف را توضیح میدهد، مهم میباشد و کار را برای پروژه های بعدی راحتتر میکند. بدیهی است در این مقاله خیلی کلی راجع به قسمت های مختلف توضیح داده خواهد شد و برای توضیحات بیشتر لطفاً به کتابهای آموزش برنامه نویسی اندروید مراجعه کنید.
اگر تاکنون مقاله های “شروع کار برای برنامه نویسی اندروید” و “تنظیم ماشین مجازی اندروید (AVD)” و “بررسی چند واژه مهم اندروید” را مطالعه نکرده اید، لطفاً این مقاله را بخوانید. همچنین درصورتیکه SDK اندروید را ندارید لطفاً آنرا از صفحه “دانلود اندروید SDK 2.3” دانلود کنید.
حالا که همه چیز آماده است لطفاً برنامه اکلیپس خود را اجرا کنید، با رفتن به File>New>Project یک پنجره باز میشود، در فولدر Android بر روی Android Project کلیک کنید (در حالت انتخاب قرار میگیرد)، و سپس بر روی دکمه Next کلیک کنید. پنجره جدیدی با نام New Android Project نشان داده میشود. تنظیمات اولیه پروژه در این پنجره انجام میشود.
۱) برای نمونه در قسمت Project Name (اولین فیلد) نام MyNewProject را وارد کنید.
۲) در قسمت Build Target معلوم میکنیم برای کدام ورژن از اندروید میخواهیم برنامه بنویسیم. در مربع کنار Android 2.3 تیک بزنید.
۳) در قسمت Application Name نام پروژه را مجدد وارد کنید (MyNewProject).
4) در قسمت Package Name نام پکیج مورد نظرتان را وارد کنید. بعنوان نمونه com.kamalan.MyNewProject . نام پکیج از این نظر بسیار مهم است که شما میتوانید در برنامه های مختلفی که در این پکیج مینویسید به همدیگر دسترسی داشته باشید. دقت کنید برای بار اول نام پکیجی را برای خودتان بسازید که دیگر نیاز به عوض کردن نداشته باشد. اندروید به این نام بسیار حساس است و اگر دو برنامه دو نام پکیج مختلف داشته باشند، بهم دیگر دسترسی نخواهند داشت، مگر در حالت Content Provider که انشالله بعداً مفصل راجع به آن بحث خواهد شد.
۵) در قسمت Create Activity هم نام پروژه را وارد کنید (MyNewProject).
6) عدد ۳ را در Min SDK Version وارد کنید. عدد ۳ معرف حداقل سطح APIی است که برنامه شما میتواند بر روی آن اجرا شود. اگر فرضاً شما عدد ۸ را وارد کنید به اندروید میگویید که برنامه فقط قابل اجرا بر روی سیستم عاملهایی است که حداقل API Leve 8 باشند. بنابراین برنامه شما بر روی سیستم عاملهای پایینتر (در این حالت خاص گوشی های قدیمی) قابل اجرا نخواهد بود.
در پایان بر روی دکمه Finish کلیک کنید.
حال مجدداً به برنامه Eclipse وارد میشوید و نام پروژه خود را در پنل Package Workspace به همراه کلی فایل دیگه ۸) مشاهده خواهید کرد. و حالا توضیح کلی این فایلها.
۱) در قسمت src لیست تمام کلاسها و اکتیویتی هایی که تاکنون ساخته اید، نمایش داده خواهد شد.
۲) در این قسمت فایلی با نام R.java وجود دارد که بسیار مهم می باشد. در این فایل شماره هگزادسیمالی ۳۲ بیتی به هر نام و فایلی که قرار است در برنامه استفاده شود، بطور خودکار اختصاص داده خواهد شد. لطفاً این فایل را دست کاری نکنید. در اکلیپس با وارد کردن هر فایل (مثلاً یک عکس) یا نام یک رشته (String) یک آدرس هگز در این فایل ایجاد میشود. در نت بینز تا بر روی کامپایل کلیک نکنید، آدرسی اختصاص داده نمیشود.
۳) با این قسمت کاری نداریم. در این قسمت سورس تمام کتابخانه های موجود در اندروید قرار گرفته است.
۴) در فولدر assets میتوانیم فایلهای صوتی و تصویری را ذخیره کنیم تا در برنامه از آنها استفاده کنیم.
نکته: مدریت فایل بر روی این فولدر انجام نخواهد شد. بدین معنی که انروید به این فایلها آدرسی در R.java اختصاص نخواهد داد. و همچنین تصاویری که در این فولدر قرار میگیرند بدون هیچ دستکاری در برنامه مورد استفاده قرار میگیرند. توضیح بیشتر اینکه مدریت فایل برای کم کردن حجم برنامه تصاویری که در فولدر res قرار دارند را فشرده خواهد کرد بنابراین محتوای عکس (از نظر کیفیت) تغییر خواهد کرد ولی تصاویری که در فولدر assets قرار میگیرند بدون دستکاری باقی خواهند ماند.
۵) در این فولدر نیز مانند فولدر assets میتوانیم فایلهای صوتی و تصویری را قرار دهیم. به هر فایلی که در این فولدر قرار گیرد آدرسی خاص در R.java اختصاص داده خواهد شد.
سه فولدر drawable ملاحظه میکنید که برای ذخیره تصاویر مانند آیکون در سایزهای مختلف است. برای اطلاعات بیشتر راجع به استانداردی که اندروید قرار داده است (البته اجباری نیست!) به صفحه “Icon Design” مراجعه کنید.
فولدر بعدی layout نام دارد. در این فولدر ظاهر گرافیکی تمام صفحات را در فرمت XML تعریف میکنیم. البته در برنامه هم بصورت برنامه نویسی میشود این کار را انجام داد ولی حسن بزرگ اینکار این است که با جدا کردن طراحی ظاهر گرافیکی از قسمت برنامه، باعث کاهش پیچیدگی های برنامه نویسی خواهد شد.
در فولدر آخر values باز هم فایلهای xml قرار میگیرد. این فایلها به تعریف نام های مختلف مانند نام برنامه، رنگ، اندازه فونت و … پرداخته میشود.
۶) فایل AndroidManifest.xml فایل بسیار مهمی است که اطلاعات مربوط به پروژه را در خودش نگهداری میکند. اطلاعاتی مانند نام پروژه، ورژن پروژه، تعداد اکتیویتی ها، فیلترها، احیاناً API های گوگل اگر در برنامه استفاده شده باشد مانند API مربوط به موقعیت بر روی نقشه و انواع دسترسی ها به منابع سیستم عامل. در مقاله ای مجزا به تعریف کامل مانیفیست خواهیم پرداخت.
اینها توضیحات بسیار کلی بود راجع به روند ایجاد پروژه بر مبنای اندروید در اکلیپس و توضیح فایلهایی که توسط اکلیپس ساخته میشود. حالا به برنامه ای که توسط اکلیپس ساختید مراجعه کنید و یک یک فایلها را مورد بررسی قرار دهید.
src>MyNewProject.java فایل اصلی یا بهتر بگویم اولین اکتیویتی است (اگر راجع به اکتیویتی چیزی نمیدانید به اینجا مراجعه کنید). با اجرای برنامه این فایل اجرا میشود. اگر این اکتیویتی را باز کنید، سورس برنامه را مشاهده خواهید کرد. در خط اول پکیج برنامه معرفی شده است (همان پکیجی که قبلاً معرفی کرده بودیم). سپس کلاسهای مختلفی که در برنامه مورد نیاز بوده است به برنامه import شده است. حالا به کلاس برنامه میرسیم که از کلاس Activity ارث برده است و شامل یک تابع با نام onCreate است. در مورد این تابع مفصل در مقاله ای که راجع به چرخه حیات برنامه (Application life cycle) اندروید است، صحبت خواهیم کرد.
setContentView(R.layout.main); وقتی برنامه به این خط میرسد، نوبت به اجرای گرافیک صفحه است که در layout>main.xml تعریف شده است. همانطور که گفتیم وقتی فایلی در فولدر res ایجاد میشود، مدیریت منابع آدرسی خاص به آن اختصاص میدهد. برای دسترسی به آدرس (بطور خاص در اینجا main) از R.layout.main استفاده شده است.
در قسمت res>layout>main.xml طرح گرافیکی صفحه نشان داده شده است. LinearLayout یکی از چهار حالت گرافیکی است که برای طراحی صفحه بکار گرفته شده است (بعداً در یک مقاله مفصل راجع به انواع layout ها صحبت خواهم کرد). در طراحی خطی هر المان بصری (مانند TextBox, EditBox در دلفی و ویژوال #C) در یک سطر قرار میگیرد. در این برنامه فقط یک TextView داریم که محتوای متنی که باید نشان دهد در res>values>strings.xml قرار گرفته است.
برای دیدن نتیجه برنامه بر روی ایمولاتور ابتدا باید AVD را راه اندازی کرد (اگر نمیدانید AVD چیست این مقاله را مطالعه کنید). برای اینکار در اکلیپس بر روی Window>Android SDK and AVD Mamager کلیک کنید. در پنجره ای که باز میشود یکی از ایمولاتورهایی را که ساخته اید، Start کنید.
بعد از چند ثانیه ایمولاتور بوت میشود و بالا می آید. حال در محیط اکلیپس دکمه را Run بزنید (میتوانید در قسمت Project Workspace بر روی نام پروژه خود راست کلیک کنید و از پنجره باز شده Run As>1 Android Application را کلیک کنید). حال میتوانید برنامه خود را بر روی ایمولاتور مشاهده کنید.
براي فراگيري كامل برنامه نويسي آندرويد بصورت كاربردي و تخصصي لطفا به لينك زير رجوع كنيد:
یکی از کتابهای مرجع برای یادگیری ASP.NET کتاب UNLEASHED می باشد.این کتاب حدود 1900 صفحه می باشد و واقعا کتاب مرجع خوبی برای یادگیری برنامه نویسی ASP.NET 4 می باشد. حتما دانلود کنید و از این کتاب استفاده ببرید.
ASP.NET نسل بعدی Active Server Pages يا ASP است که توسط شرکت ميکروسافت ارائه شده است. اين محصول توسط ميکروسافت بعنوان شاخص اصلی فناوری در ساخت سايتهای وب در نظر گرفته شده است. با استفاده از ASP.NET می توان هم اينترانت کوچک يک شرکت را ساخت و هم يک سايت وب تجاری خيلی بزرگ را طراحی و پياده سازی نمود. مهمترين نکاتی که در طراحی اين محصول در نظر گرفته شده است راحتی استفاده و بالا بودن کارائی و قابليت آن می باشد. در زير برخی ويژگيهای ASP.NET را بررسی می کنيم.
• صفحات ASP.NET کامپايل می شوند.
هنگامی که يک صفحه ASP.NET برای اولين بارتوسط يک مراجعه کننده به سايت فراخوانی می شود، آن صفحه ابتدا کامپايل شده و بر روی سرور نگهداشته می شود و در فراخوانی های بعدی از آن استفاده می شود. اين بدين معنی است که صفحات ASP.NET خيلی سريع اجرا می شوند.
• صفحات ASP.NET با ابزارهای روی سرور ساخته می شوند.
با ابزارهای موجود در ASP.NET می توان صفحات پيچيده وب را براحتی طراحی نمود. بعنوان مثال با استفاده از ابزار DataGrid می توان به آسانی داده های موجود در يک بانک اطلاعاتی را تحت وب نمايش داد.
• مجموعهASP.NET عضوی از بدنه NET. است.
بدنه NET. دارای بيش از ۴۵۰۰ کلاس آماده جهت استفاده در ASP.NET است. اين کلاس ها تقريبا هر نيازی را در برنامه نويسی برآورده می کنند. بعنوان مثال از اين کلاس ها می توان جهت توليد تصاوير بر حسب تقاضا، به رمز درآوردن يک فايل و يا ارسال يک نامه استفاده کرد.
مقايسه ASP.NET و ASP کلاسيک
ASP.NET نسل بعدی ASP يا ASP کلاسيک است. اما اين يک پيشرفت تکاملی است بطوريکه اين دو فناوری تقريبا از يکديگر متفاوتند. صفحات ASP با زبان های دستورالعمل نويسی مانند VBScript يا JScript ايجاد می شوند اما در ASP.NET ما يک فرايند کامل برنامه نويسی با زبانهای Visual Basic يا #C (سي-شارپ تلفظ شود) داريم. همچنين در ASP کلاسيک تنها پنج کلاس استاندارد (Request, Response, Application Session, Server) وجود دارد حال آنکه در ASP.NET می توان از بيش از ۴۵۰۰ کلاس استاندارد موجود در بدنه NET. بهره جست.همچنين عليرغم قدرت و امکانات زياد و متعدد ASP.NET، استفاده از آن در مقايسه با ASP کلاسيک بسيار آسانتر است. بعنوان مثال با استفاده از چند ابزار در يک صفحه ASP.NET می توان يک صفحه بسيار پيچيده HTML بدست آورد که ساخت آن در ASP کلاسيک ممکن است نياز به چند روز کار داشته باشد
زبانهای برنامه نويسی در ASP.NET
شما در ASP.NET می توانيد از هر زبان برنامه نويسی که با بدنه NET. سازگار باشد استفاده کنيد. اين زبانها عبارتند از Visual Basic.NET و #C و JScript.NET . اين بدين معنی است که شما جهت نوشتن برنامه در ASP.NET نياز به فراگيری زبان جديدی نداريد و اگر يکی از زبانهای ويژوال بيسيک يا ++C يا جاوا را می دانيد هم اکنون می توانيد در ASP.NET برنامه بنويسيد.از طرف ديگر تعدادی زبانهای ديگر توسط بعضی از شرکتهای فعال در اين زمينه به مجموعه زبانهای استاندارد ASP.NET افزوده شده است. بعنوان مثال اگر مايل باشيد حتی می توانيد از PERL و COBOL هم در ASP.NET استفاده کنيد.
ابزارهای ASP.NET
سالهاست که برنامه نويسان ويژوال بيسيک جهت ساخت فرم های خود از ابزارهای ويژوال بيسيک مانند TextBox و ListBox استفاده کرده اند. در ASP.NET هم شما می توانيد از ابزارهای فراوان موجود در آن برای ساخت فرم ها و صفحات خود استفاده نمائيد. در ASP.NET چهار دسته عمده از ابزارها موجود است:
• ابزارهای اصلی مانند TextBox، RadioButton، ListBox و Button.
• ابزارهای اعتباری برای حصول اطمينان از ورود و تائيد صحت اطلاعات ورودی فرم ها.
• ابزارهای داده ای برای ارتباط با بانک اطلاعاتی و دستکاری داده.
• ابزارهای پيشرفته جهت نمايش عناصر پيچيده در واسط کاربر مانند تقويم و آگهی های تبليغاتي.
با استفاده از Visual Studio.NET شما براحتی می توانيد با چيدن تصويری اين ابزارها بر روی فرم مورد نظر، صفحه دلخواه خود را بسازيد. در صورت تمايل حتی می توانيد در يک ويرايشگر ساده متن مانند Notepad برنامه مورد نظر را نوشته و از اين ابزارها استفاده کنيد.
دريافت ASP.NET
جهت شروع برنامه نويسی در ASP.NET تنها کافی است که مجموعه ASP.NET را بهمراه بدنه NET. از سايت ميکروسافت دريافت کنيد.
دريافت .NET Framework
ASP.NET با سيستم عامل های Windows 2000 (نسخه Server و Professional) و Windows XP کاملا سازگار است
آشنایی با محیط توسعه Android، آشنایی با معماری بر اساس تفکر Android در ابزار قابل حمل، اصول برنامه نویسی Intent، مدیریت توسعه پلتفرم های قابل حمل ، برنامه نویسی پایه ای Android، آشنایی با کلاسهای جاوا در محیط توسعه Android، آشنایی با طراحی برنامه های پایه و کاربردی، روش های ذخیره و بازیابی اطلاعات ، کار با پیام کوتاه و چند رسانه ای ، موقعیت یاب فعال
سر فصلهاي دوره:
-معماری Android و مفاهیم اولیه
oاندروید
oنسخه ها و ویژگی های انروید
oتفاوتهای سخت افزاری
oصفحه نمایش
oسنسورها
oاشکال زدایی سخت افزاری برنامه ها
oتوسعه اندروید
-برنامه نویسی ساخت یافته
oبرنامه های کاربردی
oایجاد پروژه جدید
oفایل اندروید
oچرخش صفحه
oذخیر و بازیابی اطلاعات
oاستفاده از Button , text view
oتولید رویداد
oانواع داده ای و لیستهای انتخاب
oتولید خروجی نهایی
-اجرای همزمان، سرویس نویسی و ایجاد هشدار on-line
oThread در اندروید
oتوضیح سرویس گرایی در اندروید
oتعیین اولویت
oاشتراک داده ای بین برنامه ها
oمتوقف شدن یک برنامه
oنگهدارنده ها
oزمانسنج کاهنده در برنامه ها
oمدیریت مقادیر اولیه در سیستم
oتولید گیرنده Receiver
oتولید ویجت های کوچک
oنمایش اطلاعات در نواز وضعیت
-واسط کاربری
oدایرکتوریها و صفات وابسطه
oانتخاب منبع جایگزین
oکنترل عرض و طول المانها
oصفات متن
oایجاد فرم
oدکمه های تصویری
oچک باکس و دکمه های چند وضعیتی
oتولید منو
-UI Event
oمدیریت کننده رویدادها
oرهگیری برنامه ها
oتعریف منو در فایل XML
oرویدادهای لمسی
oاشاره گرهای پرتابی
oتصاویر سه بعدی
-Multimedia
oتصاویر و تکنیکهای وابسطه
oبارگذاری تصاویر
oفایل صوتی
oضبط فایل صوتی
oاضافه کردن مدیا به برنامه های کاربردی
-Hardware Interface
oدوربین و توابع وابسطه
oشخصی سازی
oسنسورها
oاستفاده از سنسورهای دما و نور
oبلوتوث
oابزار تلفن و کنترل آن
oلرزش دستگاه
oدسترسی به شبکه های بدون سیم
-شبکه سازی و شبکه بندی
oSms و پیام کوتاه
oارسال خودکار پیام کوتاه
oاستفاده از وب
oHTTP POST
oHTTP GET
oاتصال به سایت
-ذخیره سازی داده ها
oاشتراک گذاری داده ها
oایجاد و بازیابی
oSQLite
oسایر پایگاه داده ها
oذخیره و بارگذاری فایل
-Position Trace
oمبانی مکان یابی
oآخرین موقعیت
oکار با Google Map
oتبدیل موقعیت به آدرس
oاضافه کردن Google Map به برنامه ها
oایجاد هشدار بر اساس یک موقعیت خاص
oعلامت گذاری موقعیت ها
برای شرکت در کلاسهای اندروید به سایت زیر رجوع کنید:
سیستم عامل اندروید دارای نسخههای متفاوت است که در هر کدام از آنها تفاوتهای بی نظیری ایجاد شده است که در این مطلب به این تفاوتها میپردازیم.
نسخه اول اندروید
این نسخه از آندروید که اولین نسخ آن است در تاریخ ۲۳ ستامبر ۲۰۰۸ ببر روی گوشی htc dream G1 معرفی شد.
قابلیتها :
برنامه بازار اندروید (Android Market) جهت نصب و بروز رسانی برنامهها از طریق اینترنت.
مرورگر وب با قابلیت نمایش کامل صفحههای اینترنتی با پسوند (HTML٫XHTML) و بزرگنمایی محتوای صفحه
پشتیبانی از دوربین البته این نسخه از اندروید فاقد قابلیت تغییر رزولوشن تصویر یا تغییر سفیدی یا رنگ تصویر بود
هماهنگ سازی حساب Gmail با برنامه Gmail اندروید از طریق اینترنت.
هماهنگ سازی حساب Gmail با برنامه(People app)اندروید از طریق اینترنت.
هماهنگ سازی حساب Gmail با تقویم اندروید از طریق اینترنت.
برنامه Google Maps یا نقشههای گوگل برای مشاهده نقشهها و تصاویر ماهواره ای از خیابانها و گذرگاهها و همچنین پیدا کردن کسب و کار محلی و جهت یابی در هنگام رانندگی با استفاده از GPS
قابلیت جستجوی گوگل که به کاربر امکان جستجو در اینترنت و برنامههای تلفن همراه یا در میان لیست مخاطبین و تقویم را میدهد.
قابلیت گوگل تالک (Google Talk) جهت پیام فوری از طریق اینترنت.
پشتیبانی از پیامک متنی (SMS) و پیامک تصویری (MMS)
مدیا پلیر با قابلیت پخش فایلهای رسانه ای (media files). البته این نسخه فاقد پشتیبانی از اجرای فیلم و بلوتوث استریو بود.
برنامه یوتیوب (YouTube) جهت تماشای فیلمهای این سایت از طریق اینترنت.
اعلام اطلاعیههای(Notifications) نوار وضعیت از طریق زنگ قابل انتخاب یا ال ای دی (LED) و لرزاننده (vibration) تلفن همراه.
وجود برنامههایی مانند: زنگ هشدار(Alarm Clock)، تقویم، برنامه تماس گیر (Dialer)، لانچر صفحه خانگی(Home screen (launcher، گالری عکس(pictures gallery) و تنظیمات
پشتیبانی از اتصالات بی سیم، Wifi و بلوتوث
آندروید ۱٫۱
در تاریخ ٩ فوریه ٢٠٠٩ اندروید ١٫٠ به ١٫١ بروز رسانی شد.
آندروید ۱٫۵ یا Cupcake (کیک فنجانی)
نسخه ۱٫۵ اندروید در ۳۰ آوریل ۲۰۰۹ منتشر شد. این نسخه اندروید مبتنی بر کرنل لینوکس ۲٫۶٫۲۷ بود. از جمله قابلیتهایی که در این ویرایش گنجانده شده بود شامل:
امکان ضبط فیلم از طریق دوربین فیلمبرداری
فرستادن فیلم به سایت یوتوب Youtube و عکس به سایت پیکاسا Picasa به صورت مستقیم از روی گوشی
صفحه کلید مجازی با قابلیت پیشبینی کلمات وارد شده
پشتیبانی از پخش استریوی موسیقی از طریق بلوتوث (A2DP) و کنترل پخش موسیقی یا ویدیو از طریق بلوتوث (AVRCP).
قابلیت اتصال اتوماتیک به دستگاههای بلوتوث
امکان شخصیسازی صفحه اصلی با استفاده از ویجتها و یا پروندههای شخصی
جابجایی انیمیشنی تصاویر به هنگام عوض شدن صفحات
آندروید ۱٫۶ Donut
در ۱۵ سپتامبر ۲۰۰۹ اندروید نسخه ١٫۶ یا دونات منتشر شد. این نسخه اندروید مبتنی بر کرنل لینوکس نسخه ۲٫۶٫۲۹ بود و قابلیتهای زیر را به اندروید افزود:
بهبود در سرویس اندروید مارکت
رابط کاربری یکپارچه برای دوربین عکسبرداری، دوربین فیلمبرداری و گالری تصاویر
امکان انتخاب چند عکس برای پاک کردن در منوی گالری
بهروزرسانی ویژگی جستوجوی صوتی
بهروزرسانی ویژگی جستوجو با قابلیت جستوجو در موارد نشانهگذاری شده (Bookmarks)، تاریخچه (History)، اسامی(Contacts) و وب از صفحه اصلی (Home Screen)
پشتیبانی از تکنولوژیهای بهروز شده CDMA/EVDO، ۸۰۲٫۱x، *** و موتور Text to speech
پشتیبانی از رزولوشن WVGA برای صفحه نمایش
افزوده شدن قابلیتهای حرکتی در سیستم عامل و ابزار برنامهنویسی برای برنامهنویسان
آندروید ۲ و ۲٫۱ Eclair (نان خامهای)
هر دو نسخه ۲ و ٢٫١ اندروید مانند نسخه ١٫۶ مبتنی بر کرنل لینوکس ۲٫۶٫۲۹ طراحی شدهاند. اندروید ویرایش ۲ در ۲۶ اکتبر ۲۰۰۹ معرفی شد.
در سوم دسامبر ۲۰۰۹ SDK نسخه ۲٫۰٫۱ معرفی شد و SDK ویرایش ٢٫١ در ۱۲ ژانویه ۲۰۱۰ منتشر گردید. اهم امکانات اضافه شده در این نسخه به شرح زیر هستند:
سرعت سختافزاریِ بهبود یافته
ویژگی چند لمسی Multi Touch
پشتیبانی از رزولوشنهای بیشتر برای صفحه نمایش
رابط کاربری بهروزرسانی شده
مرورگر اینترنتی با قابلیت پشتیبانی از HTML5
دفترچه تلفن بهروزرسانی شده
گوگل مپ نسخه ۳٫۱٫۲
پشتیبانی از Microsoft Exchange
افزوده شدن امکان فلاش داخلی برای دوربین
افزوده شدن زوم دیجیتال دوربین
بهروزرسانی صفحه کلید مجازی
پشتیبانی از بلوتوث نسخه ۱/۲
اضافه شدن قابلیت کاغذ دیواریهای متحرک
اضافه شدن امکان ارسال فایل با استفاده از بلوتوث
آندروید ۲٫۲ Foryo (ماست یخ زده)
اندروید نسخه ۲٫۲ در ۲۰ مه ۲۰۱۰ معرفی شد. این ویرایش اندروید مبتنی بر کرنل لینوکس نسخه ۲٫۶٫۳۲ است و قابلیتهای زیر به آن اضافه شده است:
افزایش سرعت سیستم عامل، حافظه و عملکرد سیستم بین ۲ تا ۵ برابر نسخه ۲
افزایش سرعت اجرای برنامههای کاربردی با استفاده از تکنیکهای JIT
اضافه شدن موتور جاوا اسکریپت V8 کروم به مرورگر اینترنتی
افزایش پشتیبانی از Microsoft Exchange با قابلیتهایی چون سیاست حریم شخصی بهروز شده، همسانسازی تقویم و …)
اندروید مارکت بهروز شده با قابلیت بهروزرسانی خودکار برنامههای کاربردی
شمارهگیری صوتی و انتقال دفترچه تلفن از طریق بلوتوث
امکان نصب برنامههای کاربردی بر روی حافظههای جانبی
پشتیبانی از فلش نسخه ۱/۱۰ • بهبود عملکرد دوربین در حالتهای عکس و فیلمبرداری
آندروید ۲٫۳ Gingerbread (نان زنجبیلی)
اندروید نسخه ۲٫۳ یا نان زنجفیلی در ۶ دسامبر ۲۰۱۰ معرفی شد. این ویرایش اندروید مبتنی بر کرنل لینوکس نسخه ۲٫۶٫۳۵ است. امکانات اضافه شده در این نسخه به شرح زیر هستند:
بهینه سازی و تغییر در طراحی رابط کاربری به همراه ساده تر و سریعتر کردن آن.
پشتیبانی از صفحه نمایش بزرگتر و رزولوشن بیشتر (WXGA و بیشتر) [۵]
پشتیبانی از تماس اینترنتی یا تماسهای VoIP
افزودن قابلیت اناف سی(NFC) یا همان ارتباط حوزه نزدیک.
اناف سی (NFC) گونهای وسیله ارتباطی بیسیم بین دو دستگاه که در مجاورت همدیگر قرار دارند هست که معمولا این فاصله حداکثر چند سانتیمتر است.
از موارد استفاده آن میتوان به پرداخت پول از طریق گوشیهای هوشمند اشاره کرد.
این دوره برای افرادی طراحی شده است که با یک زبان برنامه نویسی آشنایی دارند و می خواهند دانش عملی خود را در زمینه برنامه نویسی شیءگرا، مفاهیم پایه ای .NET Framework افزایش دهند.
برنامه نویسانی که برنامه نویسی را به طور تجربی آموخته اند و دانش کافی از معماری .NET، نحوه مدیریت حافظه در .NETو ویژگیهایی نظیر Genericها، delegateها، Boxingو UnBoxing و همچنین Reference Typeو Value Type و تفاوت آنها و ... را به خوبی نمی دانند از مخاطبین این دوره هستند.
دانشجویانی که با تکنولوژی XMLو کاربردهای آن در صنعت نرم افزار آشنا نیستند و یا به صورت عملی برنامه نویسی ننموده اند نیز از مخاطبین این دوره هستند.
اهداف دوره:
مبانی C#
متغیرها
کنترل جریان
حلقه ها
دستورات پرش (Jump)
آبجکت ها و انواع دادهای
متد ها
خاصیت ها
وراثت
عملگر ها و Cast ها
رشته ها و عبارات با قاعده
مجموعه ها
Generic ها
خطاها و Exception ها
کار با Visual Studio 2010
فرم ها و کنترلهای ویندوزی
ADO.Net
Connection Oriented Database Programming
Connection Less Database Programming
XML و .NET
اعمال تغییرات documentهای XML با استفاده از ModelDocument Object
خواندن و نوشتن documentهای XML
دسترسی به documentهای XML با استفاده از مدل Xpath Data
سرفصلهای دوره:
مبانی #C
پیش از شروع کار
اولین برنامه C# شما
کد برنامه
کامپایل و اجرای برنامه
نگاهی دقیق تر
o متغیرها
مقدار دهی متغیرها
محدوده (scope) متغیر
تداخلات scope مربوط به متغیر محلی
تداخلات scope مربوط به فیلد ها و متغیر های محلی
ثابت ها (Constants)
انواع داده ای از پیش تعیین شده
انواع مقداری و انواع ارجاعی
انواع CTS
انواع مقداری از پیش تعیین شده
انواع integer
انواع Floating-point (نقطه اعشار)
نوع دسیمال
نوع بولین (Boolean )
نوع کاراکتری
انواع ارجاعی از پیش تعیین شده
نوع آبجکت (Object)
نوع رشته ای (String)
o کنترل جریان
دستورات شرطی
دستور if
دستورswitch
o حلقه ها
حلقۀ for
حلقۀ While
حلقۀ do…while
حلقۀ foreach
o دستورات پرش (Jump)
دستور goto
دستور break
دستور continue
دستور return
Enumeration ها
آبجکت ها و انواع دادهای
کلاس ها و ساختارها
اعضای کلاس
اعضای داده ای (Data Members)
اعضای تابعی (Function Members)
o متد ها
تعریف کردن متد ها
بکارگیری متد ها
ارسال پارامتر ها به متد ها
پارامتر های ref
پارامتر های خروجی
عمل Overloading متد
o خاصیت ها
خاصیت های فقط خواندنی و فقط نوشتنی
معرف های (modifiers) دسترسی مربوط به خاصیت ها
نکته ای در مورد عمل inlining
سازنده ها (Constructors)
سازنده های ایستا (Static Costructors)
فراخوانی سازنده ها از طریق سایر سازنده ها
فیلد های فقط خواندنی
ساختار ها (structs)
ساختار ها از انواع مقداری هستند
ساختار ها و وراثت
سازنده های مربوط به ساختار ها
کلاس های Partial (بخش بخش شده)
کلاس های ایستا (Static Class)
کلاس Object متد های System.Object
متد ()ToString
وراثت
انواع وراثت
وراثت پیاده سازی (Implementation) در مقابل وراثت واسط
وراثت چند گانه (multiple inheritance)
ساختار ها و کلاس ها
پیاده سازی وراثت
متد های مجازی
پنهان سازی متد ها
فراخوانی نسخه های پایه ای (Basic) توابع
کلاس ها و توابع مجرد(Abstract)
کلاس ها و متد های sealed (مهر و موم شده)
سازنده های کلاس های مشتق شده
افزودن یک سازنده بدون پارامتر به یک سلسله مراتب
افزودن سازنده های با پارامتر به یک سلسله مراتب
تعریف کننده ها (Modifiers)
تعریف کننده هی مرئیت (visibility modifiers)
سایر modifier ها
واسط ها(Interfaces)
تعریف و پیاده سازی واسط ها
واسط های مشتق شده (Derived Interface )
عملگر ها و Cast ها
عملگر sizeof
عملگر typeof
مقایسه آبجکت ها برای تساوی (Equality)
مقایسه انواع ارجاعی از نظر Equality (تساوی)
متد مجازی Equals()
متد ایستای Equals()
عملگر مقایسه (==)
تبدیلات user-defined
پیاده سازی cast های user-defined
تبدیلات (casts) مابین کلاس ها
Cast های boxing و unboxing
رشته ها و عبارات با قاعده
System.String
ساخت رشته ها
اعضای StringBuilder
قالب بندی رشته ها
چگونه رشته قالب بندی می شود
مثال FormattableVector
عبارتهای با قاعده (Regular Expressions)
مقدمه ای بر عبارت های با قاعده
مجموعه ها
بررسی گروه هایی از آبجکت ها
Collection ها
تعریف یک مجموعه
لیست های آرایه ای(ArrayList)
دیکشنری ها و HashTable ها
Generic ها
مروری بر Generic ها
کارایی (Performance)
تعیین نوع ایمن(Type Safety)
استفاده مجدد از کد باینری
افزایش میزان کد ها
قواعد نام گذلری
کلاس های مجوعه Generic
مروری بر روی مجموعه های Generic
بکارگیری کلاس List
خطاها و Exception ها
نگاهی به خطا و مدیریت خطا
کلاس های Exception
کلاس های Exception کلاس پایه (base)
به دام انداختن خطا ها
پیاده سازی چندین بلاک catch
به دام انداختن Exception هایحاصل از سایر کد ها
خاصیت های System. Exception
اگر یک Exception مدیریت نشود چه اتفاقی می افتد؟
بلاک های try تودر تو
اصلاح نوع Exception
مدیریت Exception های مختلف موجود در مکان های مختلف
کلاس های خطای User-Defined
به دام انداختن Exception های User-Defined
تعریف کردن کلاس های Exception
Visual Studio 2010
کار با Visual Studio 2010
ایجاد یک پروژه
انتخاب یک پروژه
پروژه کنسولی که اخیراً ایجاد شده است
سایر فایل های ایجاد شده
Solution ها و پروژه ها
افزودن یک پروژه دیگر به Solution
تنظیم پروژه startup
کد برنامۀ ویندوزی
خواندن پروژه های Visual Studio 6
مرور کردن و کد نویسی یک پروژه
ویرایش گر پوشه ای
سایر پنجره ها
پنجره Design view
پنجره Properties
پنجره Class view
پنجره Object browser
پنجره Server Explorer
ساخت یک پروژه
ساخت (building ) ، کامپایل (Compiling) و ایجاد (making)
اشکال زدائی و عرضۀ build ها
بهینه سازی (Optimization)
نشانه های debugger (اشکال زدا)
دستورات اضافی اشکال زدائی سورس کد
انتخاب یک پیکر بندی
ویرایش یک پیکر بندی
Break point ها
پنجره watch
Exception ها
عمل refactoring
فرم ها و کنترلهای ویندوزی
ایجاد یک برنامه Windows form
سلسه مراتب کلاس
کلاس control
اندازه و مکان
شکل ظاهری(appearance)
تعامل با کاربر(user interaction)
عملکرد ویندوز(windows functionality)
کنترل ها و کامپوننت های استاندارد
کنترل button
کنترل CheckBox
کنترل RadioButton
CheckedListBox و ListBox و ComboBox
DateTimePicker
ErrorProvider
HelpProvider
ImageList
Label
ListView
PictureBox
ProgressBar
MaskedTextBox و TextBox و RichTextBox
Panel
TableLayoutPanelوFlowLayoutPanel
SplitContainer
TablePages وTableConrol
ToolStrip
MenuStrip
ContextMenuStrip
ToolStripMenuItem
ToolStripManager
ToolStripContainer
فرم ها
کلاس فرم
نمونه سازی و تخریب فرم
شکل ظاهری
Multiple Document Interface (MDI)
کنترل های سفارشی
صفات کنترل
کنترل سفارشی مبتنی بر TreeView
کنترل کاربر(UserControl)
ADO.Net
آشنایی با Connection
آشنایی با Command
آشنایی با DataAdapter
تراکنشها در Ado.Net
آشنایی با Dataset
آشنایی با DataTable
آشنایی با DataView
پروسه Data-Binding در فرم های ویندوز
آشنایی با BindingContext
معرفی XML و .NET
XML چیست؟
مزایای XML
برنامه های XML
قوانین گرامر XML
Markup، حساس به Case است
یک document باید فقط یک عنصر ریشه ای داشته باشد
یک Start tag باید End Tag نیز داشته باشد
Tagهای Start و End باید بطور صحیحی nest شود
Valueهای Attribute باید در علامات نقل قول "" قرار گیرند
DTDها و Schemaهای XML
Parse کردن اسناد XML
XSLT
XPath
.Net Framework
.Net و XML
اسمبلی ها و فضاهای نامی
مدل Parse کردن کلاسیک XML در .Net Framework
مدل Parse کردن LINQ محور در .Net Framework
فایل های پیکربندی .Net
ADO.NET
کنترل های سرور ASP.NET
XML Serialization
Remoting
سرویس های وب
XML Documentation
ویژگی های SQL Server XML
کارکردن با Visual Studio
ایجاد برنامه های تحت ویندوز
ایجاد Libraryهای Class
دستکاری documentهای XML با استفاده از مدل document object
استفاده از DOM Parser
کی از DOM استفاده کنیم؟
یک نمونه از سندXML
باز کردن یک سندXML موجود برای parse کردن
پیمایش در سندXML
جستجوی عناصر و nodeهای ویژه
بازیابی عناصر ویژه با استفاده از متد GetElementByTagName()
بازیابی عناصر ویژه با استفاده از متد GetElementByld()
انتخاب nodeهای ویژه با استفاده از متد SelectNodes()
انتخاب یک node واحد ویژه با استفاده از متد SelectSingleNode()
اصلاح کردن سندهایXML
پیمایش بین nodeهای مختلف
اصلاح کردن محتویات موجود
حذف کردن محتویات موجود
اضافه کردن محتویات جدید
استفاده از متدهای Helper
کارکردن با فضای سفید (White Space)
کارکردن با فضای نامی
درک رویدادهای کلاس XmlDocument
خواندن و نوشتن documentهای XML
readerها و writerهای XML چه چیزی هستند؟
کی از readerها و writerها استفاده کنیم؟
کلاس های reader
کلاس XmlTextReader
کلاس XmlValidationaReader
کلاس XmlNodeReader
خواندن سندها با استفاده از XmlTextreader
باز کردن سندهای XML
خواندن Attribute، عناصر، و مقادیر
بهبود اجرا با استفاده از جداول نامی
کارکردن با فضاهای نامی
حرکت بین عناصر
متد ReadSubTree()
متد ReadToDescendant()
متد ReadToFollowing()
متد ReadToNextSibling()
متد Skip()
حرکت بین Attribute
خواندن محتویات
متد ReadinnerXml()
متد ReadOuterXml()
متد ReadString()
نوشتن سندهای XML
Export کردن ستون ها به صورت عنصر
Export کردن ستون ها به صورت Attribute
تعیین رمزگذاری کاراکتر
فرمت کردن Output
ساپورت فضای نامی
کارکردن با داده هایNontextual
Serialize کردن داده ها
Unserialize کردن داده ها
دسترسی به documentهای XML با استفاده از مدل Xpath Data
مروی بر XPath
موقعیت Path
Axis
تستهای Node
اسناد
عملکردهای Xpath
مدل Xpath Data
ایجاد XpathNavigator
پیمایش در سند XML با استفاده از XPathNavigator
انتخاب کردن nodeها
پیمایش بین Attribute
بازیابی XML درونی و بیرونی
به دست آوردن یک XmlReader از XPathNavigator
به دست آوردن یک XmlWriter از XPathNavigator
ویرایش سندهای XML با استفاده از کلاس XPathNavigator
MVC3 آخرین تکنولوژی مایکروسافت در زمینه تولید صفحات وب (تا این لحظه ، یعنی مارچ 2011) می باشد که کم کم جایگزین روش قبلی تولید صفحات وب (Web Forms) می شود و جالب اینجاست که به شدت از سوی مایکروسافت تبلیغ می شود و منابع آن به سرعت انتشار می یابند. این تکنولوژی که در حال حاضر نسخه 3 آن منتشر شده است دارای مزیتهای زیر نسبت به تکنولوژی قبلی (Web Forms) می باشد(در واقع موارد ذیل مشکلات وب فرمها هستند).
در وب فرمها ، برنامه نویس کنترل زیادی روی خروجی HTML تولید شده توسط ASP.NET ندارد و اگر شما سورس کد صفحه را ببینید ، شاهد کد HTML شلوغی هستید که مشکل می توانید از آن سر در بیاورید
در وب فرمها با رد و بدل شدن ViewState در هنگام ارسال به سرور ، حجم آن زیاد می شود و صفحه به اصطلاح پف می کند
ایجاد واحد تست (Unit Test) در وب فرمها مشکل است
چرخه رد و بدل شدن فایل بین کلاینت و سرور پیچیده است
تکنولوژی MVC تمام مشکلات فوق را حل می کند و مزایایی نیز دارد از جمله :
Method Request است یعنی شما می توانید به جای فراخوانی کل یک صفحه ، یک متد را فراخوانی کنید
Partly Open Source است . یعنی بخشی از کدهای اصلی آن "باز" است و می توانید تحت استاندارد نرم افزارهای متن باز ، آن را ویرایش کنید
من در ابتدا تصمیم داشتم که در 5 الی 6 مقاله کل مبحث را خلاصه کنم ولی ترجیح دادم تا به جای آن ، بصورت گام به گام یک پروژه MVC را شروع کنم و در طی آن مطالب جدید را بیان کنم. اما قبل از شروع :
- نصب برنامه :
MVC2 در ویژال استودیو 2010 نگارش Ultimate از پیش نصب شده است ولی اگر بدنبال نصب MVC3 هستید ، از آدرس http://www.microsoft.com/web ابزار WebMatrix را نصب کنید. این ابزار پس از نصب ، پنجره Web Platform Installer 3 را در اختیار شما می گذارد که نه تنها می توانید MVC3 را نصب کنید ، بلکه می توانید برنامه های مفید دیگه ، مثل تنظیمات توصیه شده مایکروسافت برای IIS7 یا موتور (engine) بسیاری از CMS های معروف مثل DotNetNuke ، Drupal , Joomla , Umbarco را نیز نصب کنید (یکی به عجایب هفت گانه دنیا اضافه شده !!!)
- مبانی MVC:
من چون نمی خواهم خیلی وارد مباحث تئوریک شوم بصورت خلاصه توضیح می دهم و زمانی که پروژه را شروع کردیم ، خودتان این مفاهیم را بهتر متوجه می شوید . برای شروع از MVC2 آغاز می کنیم و پس از طرح مباحث اصلی MVC3 را نیز شرح می دهم .
در MVC سه جزء اصلی وجود دارد :
Model
Controller
View
Model کلاسهایی برای ارتباط با دیتابیس و استفاده از تکنیک هایی مثل Linq و Entity Framework هستند
Controller قلب MVC است و کنترل کننده درخواستهای کاربر است ، کلاسهایی هستند که در آنها ، متدهای (اکشن های) مختلف جهت پاسخگویی به درخواست کاربر و انتخاب Model و یا View (خروجی) مناسب ، وجود دارد.
View رابط کاربری است یعنی آنچه کاربر باید ببیند را در آن نمایش می دهیم.
- ایجاد پروژه جدید : برای ایجاد پروژه جدید مطابق معمول از منوی File ویژال استودیو ، گزینه New و سپس Project را انتخاب کنید و سپس یکی از قالبهای زیر را انتخاب کنید :
ASP.NET MVC2 Web Application
ASP.NET MVC2 Empty Web Application
(البته اگر MVC3 را نصب کرده باشید ، MVC3 را هم می بینید) تفاوت دو قالب فوق در این است که اولی شامل یک سری الگوهای آماده ، مثل Membership دات نت فریم ورک ، مراجع Jquery ، کلاسهای CSS از پیش ساخته شده است ولی دومی (Empty) اینها را ندارد و خودتان باید آنها را اضافه کنید برای شروع ، قالب اول را انتخاب کنید، نام و مسیر مناسبی برای آن انتخاب کنید و پروژه را ایجاد نمایید ، از شما سوال می شود که آیا تمایلی به ایجاد واحد تست دارید یا خیر (که من برای شروع خیر را انتخاب می کنم، توی شکل زیر Yes انتخاب شده !) :
پس از ایجاد باید شکل Solution Explorer شما به صورت زیر باشد :
همانطور که می بینید پوشه های مجزایی برای هر دسته از فایلها وجود دارد : مثل Controller , View , Model , ... پوشه Script شامل فایلهای جاوا اسکریپت و Jquery و MicrosoftAjax است . پوشه Conetnt هم محلی برای نگهداری فایلهای CSS و تصاویر است. اگر برنامه را اجرا کنید (F5) باید صفحه ای آبی رنگ با پیام Welcome to ASP.NET MVC! مشاهده کنید.
برای شروع کار فایل HomeController.cs از فولدر Controllers را باز کنید . کدهای زیر را در آن می بینید :
namespace _30Sharp_com_MVC.Controllers
{ publicclassHomeController : Controller
{
[HandleError] public classHomeController : Controller
{ public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{ return View();
}
}
}
}
نکاتی که از کد فوق برداشت می کنیم :
هر فایل از نوع Controller با کلمه دلخواهی شروع می شود و بدنبال آن کلمه Controller می آید و این نام دلخواه در URL سایت تاثیر می گذارد . قالب URL در MVC به فرم زیر است :
Web site address/Controller/Action
اکشن / کنترلر / آدرس اصلی سایت
برای مثال برنامه را اجرا کنید ، روی لینک About کلیک کنید و URL صفحه را ببینید ، چیزی شبیه این می بینید (به جز شماره پورت که متفاوت است)
http://localhost:34256/Home/About
به متدها و رخدادهای صفحه در ام وی سی ، Action می گویند و در هر کنترلر می توانید چندین اکشن بیاورید و یا Overload کنید خروجی اکشن ها ، به صورت پیش فرض ActionResult است ولی می تواند هر نوع دیگری باشد (مثلا string) . در یک کنترلر شما ممکن است چندین اکشن داشت که برای هر اکشن یک View ایجاد می کنید و در آن ، مشخص می کنید که کاربر چه خروجی را باید مشاهده کند . برای مثال زیر اکشن About ، من اکشن دیگری به نام Contact ایجاد می کنم و در آن اطلاعات خود را در Message ذخیره می کنم :
public ActionResult Contact()
{
ViewData["Message"] = "My Email : Amir.Madadi@hotmail.com and My Contact is 0422760153"; return View();
}
توضیح اینکه شئی ViewData از نوع دیکشنری است که در آن می توانید کلید تعریف کنید و به آن مقدار دهید که من در اینجا کلیدی یه نام Message تعریف کرده ام و اطلاعات تماس را درون آن ریخته ام .
حال باید برای این اکشن یک View ساخت تا مشخص کنیم کاربر چه چیزی را ببیند. برای این کار روی اکشن کلیک راست می کنیم و گزینه Add View را انتخاب می کنیم :
سپس پنجره زیر ظاهر می شود :
در مورد امکانات این پنجره بعدا صحبت می کنیم ، فعلا پیش فرضها را قبول کنید و روی Add کلیک کنید . خواهید دید که فایلی به نام Contact.aspx در فولدر View ایجاد می شود . در تگ Asp:Contect id="Content2" خط زیر را اضافه کنید :
حال برنامه را اجرا کنید و بعد از شماره پورت تایپ کنید : Home/Contact/ یعنی چیزی شبیه این :
http://localhost:34256/home/contact
اگر متن تایپ شده را در صفحه می بینید، به خود تبریک بگویید ، چون اولین صفحه وب خود را با تکنولوژی MVC ساخته اید.
قبل از پایان ، نگاهی به ساب فولدرهای View بیندازید ، خواهید دید که به ازای هر Controller یک فولدر وجود دارد که در آن View های مربوطه نگهداری می شوند (در حال حاضر باید Account ، Home و Shared را ببینید) که فولدر Shared برای ذخیره کردن اجزای مشترک مثل Master Page ها استفاده می شود.
خب تا اینجای کار یک پروژه جدید MVC ایجاد کردیم ، کمی در مورد ساختار MVC صحبت کردیم و یک View جدید به پروژه اضافه کردیم . در مقاله بعدی صفحاتی با کارایی بیشتر ایجاد می کنیم، تا آن موقع مروری بر دانسته های خود درباره Linq to SQL داشته باشید ، چرا که بزودی از آن در صفحات Model استفاده می کنیم
در صورتی که میخواهید Apache و MySQL به عنوان سرویس های ویندوز نصب بشند گزینه های Install Apache as Service و Install MySQL as Service رو تیک بزنید! انتخاب این گزینه ها اختیاریه. تنها نکته ای که هست اینه که در صورتیکه IIS رو سیستم تون نصبه و Apache رو نصب کنید باید حتما پورت IIS یا Apache رو تغییر بدید وگرنه Apache پیغام خطای Port Busy بهتون میده! بعد روش تغییر پروت IIS و Apache رو میبینیم. خوب تا اینجا کار تقریبا تمومه فقط باید دکمه Install رو بزنید.
حالا اگه به مشکل خاصی نخورده باشید کار نصب تموم شده!
اینم کنترل پنل Xampp هستش که با اون میتونید Apache و MySQL رو Start یا Stop کنید! یادتون باشه اگر تیک Install as Service رو نزده باشید باید هر بار که می خواهید روی وب سایتتون کار کنید Apache و MySQL فعال باشند یعنی باید دکمه Start کنارشون رو کلیک کنید (Runningرو کنار Apache و MySQL نمایش بده)
حالا مرورگرتون را باز کنید و در آدرس بار مرورگر تایپ کنید localhost یا 127.0.0.1 هر کدومشو رو که بنویسید فرقی نمی کنه! اگر همه چیز خوب پیش رفته باشه باید صفحه زیر رو ببینید که باید تویه این صفحه زبان صفحات Xampp رو انتخاب کنید پس روی English کلیک کنید!
حالا باید صفحه زیر براتون نمایش داده بشه! اگه این صفحه نمایش داده شد یعنی همه چی خوب پیش رفته اگه که نه تو بخش انجمن ها مطرح کنید تا بهتون کمک کنیم مشکل حل شه!
امروز متوجه شدم كه كنترل استاندارد منو ASP.NET در مرورگر Internet Explorer 8 بدرستي نمايش داده نمي شود مشكل به اين صورت است كه زير منوها (Dynamic Items) بصورت سفيد و خالي نمايش داده مي شوند. به جناب گوگل متوسل شدم و با كمي جستجو راه حل مشكل رو پيدا كردم.براي رفع اين مسئله بايستي حالت z-index مربوط به Dynamic menu style را برابر با يك عدد بزرگ قرار دهيم،بصورت ذيل:
مقدمه :
كاربرد روز افزون بانك اطلاعاتي SQL مرا بر آن داشت تا مطالبي هر چند كوتاه جهت خوانندگان محترم سايت تهيه نماييم. قبلا از هر چيز لازم به ذكر است كه مطالب ذيل در حد آشنايي بوده و دوستان براي دستيابي به تكنيكهاي بيشتر مي بايست از كتابهاي مرجع و Book online خود SQL Server استفاده نمايند. در مطالب زير كه سلسله وار مباحث SQL Server را مرور خواهيم كرد , سعي شده تا ابتدا مطالب مقدماتي جهت آشنايي آورده شود و سپس اگر عمري باقي بود به مطالب پيشرفته آن بپردازيم. همچنين براي يادآوري خدمت دوستان ابتدا مرور سريعي بر چند دستور SQL كه كاربرد بيشتري دارند خواهيم پرداخت و سپس به SQL Server و مطالب آن خواهيم پرداخت . مطالب زير اكثرا از كتاب Microsoft SQL Server 7.0 Database Implementation Training انتخاب گرديده است . اين كتاب به همراه CDآموزش آن به عنوان يك مرجع براي امتحانات مايكروسافت استفاده ميشود.
جداول بكار رفته نيز همگي در SQL Server 7.0 در Database Northwind موجود هستند.
دستور Select
اين دستور كه دستوري مستقل نيست و حتما بايد با اجزايي بكار رود جهت ساخت پرس و جو بر روي بانك اطلاعاتي بكار ميرود و ركوردهايي كه با شرايط اين دستور همخوان باشد به عنوان نتيجه پرس و جو برميگرداند . چهار كلمه كليدي وجود دارند كه بخشهاي ارزشمند اين دستور را تشكيل ميدهند :
1-select
2-from
3-where
4-order by
شكل كلي دستور :
Select [*|distinct column1, column2,…]
From table[,table2,…]
Where شرط
Order by نام فيلد يا شماره فيلد
مثال :
Select * from customers
اين دستور تمام ركوردهاي جدول customers را برميگرداند. كه نتيجه 91 سطر از اطلاعات اين جدول خواهد بود
حال اگر شرط
Country ='uk'
اضافه كنيم ، فقط اطلاعات مشتريان انگليس جواب خواهند بود كه به 7 سطر تقليل مييابد.
select * from customers
where Country ='uk'
حال
select City,Country from customers
order by city
فقط ستونهاي نام شهر (city) و نام كشور (Country) را بر گردانده و بر اساس نام شهر مرتب ميكند. دستور بالا با دستور پايين هردو يك جواب را ميدهند :
select City,Country from customers
order by 1
كه 91 سطر بازگردانده خواهد شد . در نتيجه پرس و جو تعدادي سطر تكراري وجود دارد مانند شهر London كه اگر از كلمه Distinct در Select استفاده كنيم اين سطرهاي تكراري حذف خواهد شد .
select distinct City,Country from customers
order by 1
و جواب 69 سطر خواهد بود.
استفاده از توابع در Select
1- Count :
تعداد سطرهاي بازگردانده شده توسط select را ميشمارد.
Select Count(*) from Customers
where Country ='uk'
در اصل تعداد مشترياني را ميشمارد كه در كشور انگليس هستند. كه عدد 7 جواب است.
2- Sum :
مجموع يك فيلد عددي را برميگرداند.
Select sum(Quantity) from [Order Details]
مجموع فيلد Quantity را براي فيلدهايي كه شماره محصول آنها ( Productid) برابر 11 است را محاسبه ميكند
نكته 1 :
در دستور select ميتوان از اسم مستعار استفاده كرد ، يعني نام جديدي را براي يك ستون در نظر گرفت به عنوان مثال select قبل را به شكل زير بكار برد :
Select sum(Quantity) as Sum_QTY
from [Order Details]
where productid = 11
كه Sum_QTY يك اسم مستعار براي مجموع است. استفاده از كلمه كليديas اختياري است.
نكته 2 :
در دستور select هرگاه اسم فيلدي اسم خاص باشد و يا فاصله بين اسم باشد مثل Order Details كه فاصله بين اسم جدول است حتماُ از علامت براكت [] ميبايست استفاده كرد.
نكته 3 :
استفاده از group by :
هنگامي كه از توابع count و Sum به همراه يك فيلد ديگر در دستور select استفاده ميشود از group by استفاده ميكنيم .
به عنوان مثال دستور زير جمع مقادير فيلد Quantity را براي هر شماره محصول محاسبه ميكند .
Select productid, sum(Quantity) as sum_qty
from [Order Details]
group by productid
دستور where مي تواند خود شامل يك دستور select باشد :
select * from Products
where ProductID in
( select distinct ProductID from [order details] where Quantity >70)
order by ProductID
تنها نكته اي كه مي بايست توجه كرد اين است كه نام فيلدي كه در شرط آورده مي شود حتما در دستور select آورده شود, به عبارت ديگر select درون شرط تنها يك ستون را مي بايست برگرداند .
تمرين : با فرض اينكه دو جدول Products و order details داراي ستون (فيلد) يكسان ProductID هستند , يك دستور Select بنويسيد كه تمام فيلدهايي از Products را نشان دهد كه فيلد ProductID آن با ProductID جدول order details يكي باشد.؟
حل :
Select pr.*
From Products as pr , [order details] as od
Where pr. ProductID = od. ProductID
قابل به ذكر است كه بيش از 90% از كارهايي كه ما برروي جداول انجام مي دهيم با select و تركيبات آن انجام مي شود. لذا بدست آوردن تبحر در نوشتن select ها مي تواند شما را در تهيه برنامه ها ياري كند.
بيشترين و كمترين مقدار فيلد را در بانك اطلاعاتي بدست مي دهد.
Select min (Quantity)
from [Order Details]
4-Top n :
تعداد n سطر اول بانك اطلاعاتي را برمي گرداند.
Select top 5 *
from [Order Details]
5 سطر اول بانك را برمي گرداند.
نكته 3 : در حالت بالا اگر مقدار سطر 5 و 6 يكي باشد فقط سطر 5 جواب خواهد بود براي گريز از اين حالت از شكل زير در اين دستور استفاده ميكنيم :
Select top n with ties *
From table
5-Into
Select * from table1 into table2
اطلاعات table1 را به table2 كپي ميكند. البته table2 بايد از قبل وجود نداشته باشد.
اين دستور خود table2 را ميسازد.
دستور select قويترين و كاربردي ترين دستور در sql است كه خود ماهها نيازمند تمرين و آموزش است . براي اطلاعات بيشتر به books online خود Sql Server مراجع كنيد.
دستور Delete
براي حذف اطلاعات از يك بانك اطلاعاتي استفاده ميشود.
شكل كلي دستور :
Delete table1
Where شرط
مثال :
فرض كنيد جدول authors موجود باشد و فيلد كليد آن au_id باشد. براي حذف 10 سطر اول اين جدول از دستور زير استفاده مي كنيم :
DELETE authors
FROM
(SELECT TOP 10 * FROM authors) AS t1
WHERE authors.au_id = t1.au_id
دستور insert
براي اضافه كردن اطلاعات به يك جدول از اين دستور استفاده ميشود.
Insert into table1 (f1,f2,…)
Values (v1,v2,…)
كه f1,f2 نام فيلدها و v1,v2 مقادير آنها ميباشد.
البته ميتوانيد مقادير را نتيجه يك select قرار داد.
مثال :
Insert into table1
Select top 10
From table2
مقدار 10 سطر اول را از table2 را در table1 درج ميكند. البته بايد تعداد فيلدها يكي باشد. در غير اينصورت از values استفاده كنيد.
آموزش سئو-سئو-تگh1-موتور جستجوی گوگل-بهینه سازی سایت-بهینه سازی وب سایت
کسی منکر این نیست که تگ h1 از اهمیت زیادی در سئو سایت برخوردار هست و تمام فعالان حوزه بهینه سازی سایت وجود تگ h1 را ضروری می دانند و تگ h1 این امکان رو به موتور های جستجو می دهد که بهتر محتوای سایت شما رو درک کنند. اما شما حتما این قانون رو شنیدید که باید توی هر صفحه فقط یک تگ h1 وجود داشته باشه. خوب این حرف تا حدودی درست هست ولی چنین قانونی صد رد صد هستش. می خواهید بدونید چرا ؟ پس این مقاله رو با دقت بخونید.
قانون استفاده از تنها یک تگ h1
سال های سال است که گفته می شود که باید تنها از یک تگ h1 استفاده نمود . این مورد بار ها و بار ها هم توسط کسانی که با بهینه سازی سایت آشنا هستند در انجمن ها و سایت ها به کاربران تازه کار توصیه می شود. شرایطی که این قانون رو بوجود آورده :
از اونجایی که هر صفحه می تونه فقط یک عنوان داشته باشه پس باید از یک تگ h1 استفاده نمود.
تگ h1 به کاربر در مورد محتوایی که در اون صفحه خواهد خوند اطلاع می دهد.
خوب اگر این دو تا اصل رو در نظر بگیریم چون تگ h1 عدد یک داره پس یک بار و تگ h2 چون دو هست باید دوبار ولی می دونید که این طوری نیست و ما توی هر صفحه بیشتر از دوبار ممکنه از h2 استفاده کنیم. یک بار دیگه بیاید که شماره اول این شرط رو بخونیم “از اونجایی که هر صفحه می تونه فقط یک عنوان داشته باشه پس باید از یک تگ h1 استفاده نمود.” به نظر شما این قانون نسبی نیست ! بیشتر اوقات ما در صفحات اول سایت های پرتال مانند که صفحه به چند بخش تقسیم شده ما بیشتر از یک عنوان در صفحه داریم . منظور من عناوین اخبار نیست منظورم بخش ها یا همون Sections هست. اگر به طور مثال ما در اون بخش یه قسمت آخرین خبر ها رو داشته باشیم و در قسمت دیگه آخرین ارسال ها رو مطمئنا ذات صفحه ما دو قسمتی هست مگر اینکه ما نادیده بگیریم یا به خاطر این قانون خودمون رو به کوچه علی چپ راهنمایی کنیم !
نقض قانون استفاده از تنها یک تگ h1
همون طور که می دونید من توی صفحه اول تات وب من از دو تا تگ h1 استفاده کردم. ولی خوب شما احتمالا تا الان با خودتون گفتید که همه اینایی که گفتی درست ولی از کجا که معلوم حرف تو درست باشه یه دنیا دارن می گن که نه ! در جواب باید بگم که استفاده از چند تا تگ h1 تا به حال چندین هزار بار از بخش پشتیبانی مدیران سایت گوگل پرسیده شده و در یک ویدئوی رسمی که در وبلاگ وب مستر سنترال گوگل هست آقای Matt Cutts که سرپرست این بخش جستجو هست دقیقا این جواب رو به صورت رسمی داده . به نظر شما اگر خود گوگل می گه مشکلی در استفاده از چند تا تگ h1 نیست آیا بقیه می تونن بگن گوگل غلط کرده ما از گوگل که موتور جستجو خود گوگله بیشتر می دونیم ؟!!!!
البته این مورد رو دقت داشته باشید که طبق صحبت آقای Matt Cutts درسته می شه چند تا تگ h1 داشت ولی دیگه درست نیست کل صفحه رو پر کنیم از تگ h1 . مطمئنا هم اینکه از لحاظ ظاهری قشنگ نمی شه و هم اینکه درست نیست.به یاد داشته باشید در بهینه سازی سایت هیچ چیز صد در صد نیست و همه چیز نسبی هستش
:: بازدید از این مطلب : 78
|
امتیاز مطلب : 1
|
تعداد امتیازدهندگان : 1
|
مجموع امتیاز : 1
تاریخ انتشار : پنج شنبه 17 فروردين 1391 |
نظرات ()
PHP شامل تعدادی از متدهاییست که با نام ” متدهای جادویی ” شناخته میشن.این متدها با دو زیر خط (Underline یا underscore) شروع میشن.این متدها در جاهای مختلف استفاده میشن و خیلی مفید هستن.در ادامه نگاهی میکنیم به متهای جدویی در PHP .
متد سازنده کلاس یا __construct()
اگر با برنامه نویسی شیء گرا در PHP آشنا باشید حتمن با این متد کار کردید.این متد هنگامی که یک نمونه از یک کلاس ساخته میشه اجرا خواهد شد.مثال زیر رو در نظر بگیرید :
class Animal{
function __construct()
{
echo 'Animal';
}
}
$animal = new Animal();
// output : Animal
در کلاس Animal یک متد ایجاد کردیم با نام __construct() و در این متد رشته Animal رو نمایش دادیم. هنگامی که از کلاس Animal یک نمونه ایجاد میکنیم تابع __construct() اجرا میشه و رشته Animal در خروجی نمایش داده میشه.
متد مخرب یا __destruct()
این متد برعکی متد __construct عمل میکنه.یعنی هنگامی که کلاس میخواد از حافظه خارج بشه این متد اجرا میشه.
مثال :
class DB{
…..
function __destruct()
{
$db->disconnect();
}
…..
}
$db = new DB();
unset($db);
در کلاس بالا هنگامی که تابع unset میخواد کلاس $animal رو از حافظه خارج کنه متد __destruct() اجرا میشه و ارتباط با دیتابیس قطع میشه.
Overloading در PHP
در PHP واژه Overloading به معنی ایجاد متدها و متغیرهای داینامیک است. این متدها و متغیر ها به وسیله متدهای جادویی یا Magic Methods ساخته میشن.
ساخت متغیرهای داینامیک در PHP
متد __set
این متد برای ایجاد متغیرهای داینامیک استفاده میشه.متغیرهایی که یا داخل کلاس وجود ندارن یا متغیرهایی که در خارج از کلاس بهشون دسترسی نداریم.
مثال :
class Car
{
private $vars = array() ;
function __set($name , $value)
{
$this->vars[$name] = $value ;
}
}
$car = new Car();
$car->wheel = 4 ;
$car ->color = 'red';
$car->name = 'BMW';
برای داشتن متغیرهای داینامیک بهترین راه استفاده از آرایه هاست. در کلاس Car یک آرایه با نام $vars ایجاد کردیم . دسترسی به آرایه $var به صورت Private تعریف شده یعنی در بیرون از کلاس به این آرایه دسترسی نداریم.سپس با متد __set متغیر $var رو مقدار دهی میکنیم.متد __set دو پارامتر میگیره.اولی نام کلید (key) و دومی مقدار (value) .
هنگامی که شما از کد زیر استفاده میکنید :
$car->color = 'red';
در حقیقت دارین ار زیر رو انجام میدید :
$car->vars['color'] = 'red';
همینطور که میبینید استفاده از متد __set خیلی میتونه در کار با کلاسها به ما کمک کنه.
متد __get()
هنگامی که از متد __set برای ایجاد متغیرهای داینامیک در کلاس استفاده میکنیم نیاز داریم که بتونیم به این متغیرهای داینامیک دسترسی داشته باشیم و از مقادیر این متغیرها استفاده کنیم.با استفاده از متد __get به راحتی میتونیم این ار رو انجام بدیم.
class Car
{
private $vars = array() ;
function __set($name , $value)
{
$this->vars[$name] = $value ;
}
function __get($name)
{
return $this->vars[$name];
}
}
$car = new Car();
//set values
$car->wheel = 4 ;
$car ->color = 'red';
$car->name = 'BMW';
// Get values
echo $car->color ;
متد __get یک پارامتر میگیره که این پارامتر در اصل نام متغیرمونه. هنگامی که از کد :
echo $car->color ;
استفاده میکنیم در حقیقت کد زیر در پشت صحنه اتفاق میافته :
echo $car->vars['color'] ;
ساخت متدهای داینامیک در PHP
در قسمت قبل دیدید که چطوری میتونیم در PHP متغیرهای داینامیک بسازیم و یاد گرفتیم که چطوری از مقادیرشون استفاده کنیم.در این قسمت خواهیم فهمید چطوری میتونیم متد ها یا توابع داینامیک رو با استفاده از متدهای جادویی در PHP پیاده سازی کنیم .
__call متد جادویی
با استفاده از متد __call میتونیم توابعی به صورت داینامیک بسازیم.این تابع دو مقدار میگیره اولی نام متد و دومی پارامترهای تابع مورد نظر رو میگیره. برای درک بهتر به مثال زیر دقت کنید :
مثال : فرض کنید شما یک کلاس برای کار با دیتابیس نوشتید.خیلی خوبه که در کلاس شما توابعی باشه تا به صورت مستقیم با فیلدهای جدول شما در ارتباط باشه.مثلا هنگامی که میخواید با استفاده از فیلد ID درون دیتابیس جستجو کنید تابعی داشته باشید به صورت findByID یا اگر جستوجوی شما بر اساس فیلد name باشه با تابع findByName بتونید دستور SQL مورد نظر رو اجرا کنید.برای این کار دوراه دارید.
اول اینکه به ازای هر فیلد جدولتون یک تابع بسازید مثلا :
class Database
{
…
function findByID($id)
{
$sql = " SELECT * FROM users WHERE id = $id";
return $this->db->query($sql);
}
function findByName($name)
{
$sql = "SELECT * FROM users WHERE name = $name";
return $this->db->query($sql);
}
}
فرض کنید تعداد فیلدهای جدول شما زیاد باشه. استفاده از این روش کار منطقی نیست.
حالا ببینیم روش دوم برای این کار چیه.
روش دوم استفاده از متد جادویی __call
class Database
{
function __call($method , $args)
{
$field =strtolower( substr($method , 6 , strlen($methods) – ۶)) ;
$sql = "SELECT * FROM $this->table WHERE $field = $args[0] " ;
return $this->db->query($sql);
}
}
$db = new Database();
$db->findByID(10);
$db->findByName('saeed');
حالا ببینیم متد جادویی __call چه کاری انجام میده که میتونیم متدهای داینامیک بسازیم.
همینطور که در بالا گفتم این متد دو پارامتر میگیره.اولی نام تارع و دومی آرایه ای از پارامترهایی که باید به تابع داینامیک پاس بشن.مثال بالا یک مثال کاملا عملی برای استفاده از متد __call بود که در خیلی جاها کاربرد داره.
در خط بالا ابتدا از متغیر $method قسمت findBy رو حذف کردیم.رشته ای که باقی میمونه نام فیلد جدولمونه.سپس به حروف کوچک تبدیلش کردیم و داخل دستور SQL ازش استفاده کردیم.
با این کار به تعداد فیلدهای جدول راه هست برای جستو توی دیتابیس!!
متد جادویی __callStatic
این تابع از PHP نسخه ۵٫۳ معرفی شد. دقیقا مثل __call استفاده میشه اما همینطور که از نامش مشخصه برای متدهای static کاربرد داره.
گاهی اوقات ممکنه لازم داشته باشیم یک شیء رو به یک رشته تبدیل کنیم.اگر بخواید با دستور echo یک شیء رو در خورجی چاپ کنید یک خطا اتفاق میافته :
$car = new Car();
echo $car;
// fatal error: Object of class Car could not be converted to string
متد __toString()
این زمانی اجرا میشه که بخوایم یک شیء رو در خروجی نمایش بدیم.
class Car
{
function __toString()
{
return get_class();
}
}
$car = new Car();
echo $car ; // Car
اگر داخل کلاس متد __toString() رو پیاده سازی کرده باشیم هنگامی که با دستور echo شیء $car رو میخوایم توی خروجی نمایش بدیم با خطا مواجه نمیشیم.در مثال بالا هنگامی که دستور echo $car; اجرا میشه تابع get_class() اجرا میشه.
باد آوری : تابع get_class() نام کلاس جاری رو بر میگردونه.
Serialization
Serialization به تبدیل یک شیء یا یک آرایه به رشته گفته میشه.از Serialization برای نگهداری اشاء در فایل یا دیتابیس استفاده میشه.هنگامی یک شیء رو به حالت اول برگردونیم Unserialize گفته میشه.هنگامی یک کلاس رو serialize میکنیم تمام متغیرها و اعضای کلاس ذخیره خواهند شد.اما مشکلی که هست اینه که ممکنه نخواسته باشیم مثلا متغیری که کانکشن دیتابیس رو تگهداری میکنه هم ذخیره یشه.برای این کار از متد __sleep() استفاده میکنیم.
متد جادویی __sleep()
این متد هنگامی اجرا میشه که تابعserialize() رو بخوایم روی شیء اجرا کنیم.داخل این متد میتونیم مشخص کنیم که چه متغیرهایی از کلاس اجازه دارن serialize بشن.این متد باید یک آرایه رو برگردونه.
مثال :
class My
{
public $a;
public $b;
function __construct(){
$this->b = 'salam';
$this->a = 'a';
}
function __sleep()
{
//return get_object_vars($this);
return array('b');
}
}
$m = new My();
$a = (serialize($m));
var_dump(unserialize($a));
/*خروجی :
object(My)#2 (2) { ["a"]=> NULL ["b"]=> string(5) "salam" }
*/
همینطور که میبینید در خروجی کد بالا فقط متغیر $b دارای مقدار هست.این به این خاطره که آرایه ای که در متد __sleep() برگردانده شده فقط شامل متغیر b هست.
return array('b');
این هط میگه که هنگام serialize کلاس My فقط متغیر b حق ذخیره شدن رو داره.
متد __wakeup()
این متد هنگامی اجرا میشه که تابع unserialize() اجرا میشه.به عنوان مثال اگر هنگام serizalize یک شیء اتصال به دیتابیس رو بسته باشید داخل متد __wakeup میتونید این اتصال رو دوباره برقرار کنید.
class Database {
//...
public function __wakeup() {
// reconnect to the network
$this->connect();
}
//...
}
متد __invoke()
این متد هنگامی اجرا میشه که بخواید از یک شیء به عنوان یک تابع استفاده کنید.
خروجی بالا به شکل زیره :
__invoke method. $x = 5
متد جادویی __autoload()
متدهایی که در قسمت قبل آموزشش رو مشاهده کردید همگی در کلاسها قابل استفاده بودن. تابع __autoload یک تابع مستقل محسوب میشه.این تابع برای لود مستقیم کلاسها به کار میره.هنگامی که میخواید از یک کلاس یک شیء ایجاد کنید ابتدا نیاز هست که با دستور include یا require کلاس مورد نظر رو لود کنیم.
require 'classes/database.class.php';
$db = new Database();
با استفاده از تابع __autoload از require کردن های زیاد راحت میشیم.
در مثال بالا تمام کلاسهای پروژه ما در پوشه classes نگهداری میشن.
function __autoload($classname)
{
$class = 'classes/'.strtolower($classname).'.class.php';
require $class;
}
با استفاده از تابع بالا در هر جای پروژه میتونیم به صورت خودکار کلاسها رو لود کنیم.
$db = new Database();
حرف آخر
متدهای جادویی در PHP خیلی مفید هستن و انعطاف زیادی به برنامه نویسی شیء گرا میدن.با استفاده از این متدها لذت برنامه نویسی شیء گرا دوچندان میشه.
اگر دقت کرده باشید در مقاله بالا سعی کردم ازاصطلاحات ساده برای دوستانی که اول راه هستند و با برنامه نویسی شیء گرا آشنایی زیادی ندارن استفاده کنم.مثلا یک جا از کلمه “متد (Method) ” و جای دیگه از کلمه ” تابع (function) ” استفاده کردم.منظورم از این کار این بوده که به کسانی که اول راه شیء گرایی هستن بفهمونم این ها فقط “اصطلاح” ـه و ممکنه در جاهای مختلف نامهای مختلفی داشته باشه.هنگامی که یک تابع در یک کلاس قرار میگیره به اصلاح بهش میگن ” متد ” اما مهم نیست بهش چی میگن مهم اینه که “تابع” همون “متد” ـه.
مهم درک مفهوم شیء گرایی هست و لطفا ذهن خودتون رو درگیر این اصطلاحات نکنید.
UML زبان استاندارد جهانی برای مدلسازی
سطح : مقدماتی
با كمی اغماض میتوان ادعا كرد كه در ميان شاخههای مختلف مهندسی در هركدام كه دارای قدمت بيشتری است، همگرايی بيشتری در اتخاذ روش و ابزار برای انجام اعمال نسبتاً مشابه از ميان متخصصان و متوليان آن رشته وجود دارد. به طور مثال در حال حاضر برای اجرای يك سازه در هر نقطه از دنيا، مهندسين عمران از يك روند همسان با توالی مشابه شامل:
الف)توليد طرح عمرانی
ب)پيادهسازی نقشه
ج)محاسبات سازهای
د)اجرا استفاده میكنند
ولی در رشته نوپايی چون مهندسی نرمافزار، گاه چنان روشها متفاوت است كه از ديد يك ناظر خارجی، دو تيم نرمافزاری مختلف كه هر دو قصد توليد محصولی مشابه را دارند، دو تيم در رشتههای متفاوت به نظر بيايند. يكی از علل وجود تمايز در توليد نرمافزار ميزان تخصص نيرو و زمان به پيادهسازی میباشد.بدين معنا كه در نزد بسياری از برنامهنويسان توليد نرمافزار معادل است با توليد كد. ولی از نظر بعضی ديگر توليد كد تنها بخشی از توليد نرمافزار است كه در بسياری از موارد حتی منابع و زمان. اختصاص داده شده به آن در طول پروسه.توليد نرمافزار كمتر از50% میباشد.
از يك ديدگاه كلی، پروسه توليد نرمافزار را میتوان به دو بخش كلی شامل:
الف)تحليل و طراحی ب)پيادهسازی تقسيم كرد. از ديدگاه دسته اول، برنامهسازان، تحليل و طراحی صرفاً فهم ذهنی مساله میباشد كه دقيقا پس از آن بايستی اقدام به پيادهسازی كرد. در حاليكه در نظر دسته دوم، فاز تحليل و طراحی پر اهميتتر از فاز دوم میباشد كه بايستی برای انجام آن از متدولوژیها و روشهای استاندارد استفاده كرد. UML يك زبان مدلسازی میباشد كه در فاز تحليل و طراحی مورد استفاده قرار میگيرد.
مدلسازی (Modelling) چيست؟
مدلسازی يكی از تكنيكهای ذهنی بشر میباشد كه نه تنها برای اهداف علمی، بلكه برای انجام امور روزمره بشر به دفعات مورد استفاده قرار میگيرد. مدلسازی به طور كلی يعنی شبيهسازی يك محيط با اندازههای متفاوت و از محيط واقعی و احتمالا مواد و مصالحی متمايز از جنس مواد و مصالح محيط مدل شده. در مدلسازی ابتدا اجزای محيط واقعی انتخاب شده و متناسب با هدف مورد نظر از مدلسازی خصوصياتی از هريك از اجزای واقعی انتزاع میشود، يعنی به ازای هزيك از اجزای محيط واقعی يك موجوديت تجريدی ساخته میشود و با برقراری ارتباطی مشابه با ارتباط اجزای واقعی، در ميان موجوديتهای تجريدی، محيط واقعی مدل میشود. برای روشن شدن مثالی میزنيم:
فرض كنيم قصد داشته باشيم در فاز طراحی يك اتومبيل ميزان موفقيت هوا در مقابل اتومبيل در حال حركت را بسنجيم يكی از راهها برای انجام اين آزمايش، ساخت يك اتومبيل واقعی، راندن و سپس اندازهگيری مقاومت هوا میباشد كه انجام اينكار اگرچه ما را به هدف میرساند، ولی دارای هزينه بالاييست چرا كه بايستی ابتدا ماشين ساخته شود، سپس مورد آزمايش قرار گيرد.در اين صورت اگر در آزمايش به نتيجه مورد نظر نرسيم، بايستی دوباره طراحی را تغيير داد، و پس از ساخت يك نمونه واقعی ديگر آزمايش را تكرار كنيم و اين روند آنقدر ادامه پيدا كند تا طراحی مناسب برای اتومبيلی با خصوصيات مورد نظر شكل گيرد. میبينيم كه چنين روشی بسيار پرهزينه است و اين هزينه هم شامل هزينههای اقتصادی است و هم هزينههای زمانی، چون علاوه بر اين كه در هر مرحله آزمايش بايستی اتومبيل با صرف هزينه بالا ساخته شود، زمان ساخت آن نيز طول خواهد كشيد.
ولی متخصصان برای انجام چنين آزمايشی به مدل روی میآورند. يعنی يك جسم فيزيكی كوچك با خصوصيات آئروديناميكی لحاظ شده در طراحی اتومبيل، ساخته میشود و با قرار دادن آن در يك تونل باد، حركت اتومبيل در فضای واقعی را شبيه سازی میكنند و بدين طريق ميزان مقاومت هوا را میسنجند.
نكات مورد توجه در اين مدلسازی، يكی اندازه مدل و ديگری خصوصيات آن میباشد. مدل بسيار ساده و كوچك میباشد و از طرفی تنها خصوصيت آئروديناميكی اتومبيل در مدل لحاظ میشود. چرا كه هدف ما از مدلسازی تنها بررسی خصوصيات آئروديناميكی اتومبيل است و مدل الزاماً نبايستی از جنبههای ديگر، شباهتی به اتومبيل واقعی داشته باشد. مثلا در ساخت چنين مدلی به هيچوجه به استحكام اجزا و يا زيبايی مدل توجه نمیشود چون بررسی چنين خصوصياتی خارج از هدف اين مدلسازی خاص است.
مثال بالاتنها يك جنبه از مدلسازی را بيان میكند و آن جنبه شناختExploration میباشد. يعنی در مدلسازیهای مشابه مدلسازی فوقالذكر، هدف از مدلسازی تنها شناخت محيط مورد مدل میباشد. يك جنبه ديگر از مدلسازی تبيين (specitication) میباشد. يعنی گاه برای معرفی و ارائه خصوصيات يك موجوديت واقعی يك مدل از آن ارائه میشود. نقشه جغرافيايی مثال خوبی است كه اين جنبه از مدلسازی را مورد نظر دارد.
پس میتوان گفت كه هدف از مدلسازی دو چيز میباشد:
الف)شناخت(exploration)
ب)تبيين(specification) تدریس UML
كه بر اساس تعريف مسئله، مدلسازی يكی يا هردو هدف را در نظر میگيرد.
نكته ديگری كه بايستی در مدلسازی توجه كرد، روش (methodo logy) ساخت يك مدل میباشد. در بعضی موارد مدل چيز بسيار سادهای است و به راحتی ساخته میشود. ولی در بعضی از موارد مدل خود بسيار پيچيده میباشد هر چند از نظر منطقی غيرممكن مینمايد ولی میتوان ادعا كرد كه در بعضی موارد مدل پيچيدهتر از موجوديت واقعی است. زمينهای كه اين ادعا را در آن مصداق فراوان دارد، نرمافزار میباشد. بنابراين در شاخهای از مهندسی كه مدلسازی حائز اهميت فراوان میباشد قطعا روشهای استانداردی برای ساختن مدل وجود دارد. در نرمافزار، روشهای توليد نرمافزار مانند SSAPM ,RUP,USDP, در واقع روشهای مدلسازی میباشند. هر روش مدلسازی طبيعتا نيازمند مصالحی برای ساخت مدل میباشد كه در روشهای مدلسازی نرمافزاری مصالح لازم برای توليد مدل، زبانهای مدلسازی میباشند.
UML چيست؟
Unified Modelling Language يك زبان مدلسازی است كه درسال 1995 به وسيله شركت Rational معرفی شد. UML يك زبان شیگراست يعنی اجزا اين زبان متناسب با مفاهيم به كاررفته و پارادايم شیگرائی طراحی شدهاند.
پس از ارائه مفاهيم شیگرائی در ابتدای دهه 80 ميلادی به تدريج روشهای شیگرائی توليد نرمافزار به وسيله افراد و سازمانهای مختلف ارائه گرديد. اين روشها در برگيرنده يك مجموعه علائم برای بيان مفاهيم و ايدهها از يك سو و يك طرح كاری برای توليد نرمافزار از سوی ديگر بود كه از مهمترين اين روشها میتوان به OMT,BOOCH,OOSE…. اشاره كرد.
اگرچه داشتن يك روش استاندارد امری مطلوب است ولی تفاوت روشها امريست طبيعی و با توجه به تفاوت فراوان در نوع مسائل میتوان گفت كه حتی وجود روشهای مختلف الزامی است چرا كه مثلا در يك پروژه بسيار بزرگ نمیتوان همان روشی را به كار برد كه در يك پروژه كوچك. ولی زبان و مجموعه علائم از چنين قاعدهای پيروی نمیكند و داشتن يك زبان استاندارد امری بسيار مطلوب و از بعضی ديدگاهها حتی الزامی میباشد. يكی از الزامات مهم در داشتن يك زبان استاندارد همگانی ناشی از نقشی است كه زبان در ارتباطات به عهده دارد. البته چندگونهبودن زبان خود مولد مشكلات متعددی است.
با هدف ارائه يك زبان استاندارد فراگير شركت Rational با گردآوری سه نفر از ارائهكنندگان معتبرترين روشهای شیگرا يعنی Irar jacobson مبدع روش OOSE ,BOOCH مبدع روشی با همين نام، Rambaugh مبدع روش OMT و با اخذ نقاط قدرت سه روش فوقالذكر، يك زبان استاندارد به نامUML ارائه كرد. اين زبان پس از ارائه از سوی (Object Mamgement Group) كه يكی از معتبرترين سازمان جهانی در زمينه شیگرائی میباشد بعنوان يك استاندارد پذيرفته شد. پس از ارائه اين زبان و پذيرفته شدن آن به عنوان يك استاندارد جهانی در زمينه نرمافزار، علاوه پروسه اين زبان و ارائه متولوژیهای مبتنی بر آن مانند usop و rup از سوی افراد و سازمانهای مختلف، متخصصين در پی يافتن كاربرد اين زبان در زمينههای ديگر فنی و مخصوصی بر آمدند. برآيند اين تلاشها در حال حاضر uml را به عنوان قدرتمندترين زبان مدلسازی در دنيای نرمافزار مطرح ساخته است.
اولین فنجان شما از ] قهوهء[ جاوا ( برای Microsoft Windows )
چند دستورالعمل جزئی؛ برای اولین برنامه شما
دستورالعمل های زیر به شما کمک میکنند اولین برنامهء جاوای خود را بنویسید. این دستورالعملها برای کاربران سیستمهای Microsoft Windows ، که شامل Windows 9598/2000/ME/XP/NT 4.0میشود ، نوشته شده. اول با کارهایی که قبل از نوشتن اولین برنامه باید انجام دهیم شروع میکنیم. سپس، با توضیح مراحل ساختن یک application ، مراحل ساختن یک applet و توضیحاتی در مورد error هایی که با آنها مواجه خواهید شد، به کار خود ادامه میدهیم.
1.کارهایی که اول باید انجام دهیم
2.ساختن اولین application شما
الف. نوشتن یک فایل جاوا
ب. compile کردن فایل
پ. اجرای برنامه
3.ساختن اولین applet شما
4.بعدش چیکار کنیم!
1. کارهایی که اول باید انجام دهیم
برای نوشتن اولین برنامهء خود، به موارد زیر نیاز دارید :
1- . The JavaTM 2 Platform, Standard Editionشما میتوانید SDK (Software Development Kit = بستهء توسعهء نرم افزار ) را از اینجا بگیرید. مواظب باشید که SDK را download میکنید، نه JRE .
2- یک ویرایشگر متن . در این مثال ما از NotePad استفاده خواهیم کرد. برای پیدا کردن NotePad ، در منوی Start ؛ Programs > Accessories > NotePad را انتخاب کنید. اگر از ویرایشگر متن دیگری استفاده میکنید، باز هم میتوانید از این دستورالعملها استفاده کنید.
دو مورد بالا تمام چیزیست که شما برای نوشتن اولین برنامهء جاوای خود به آن نیاز دارید.
توجه:ممکن است که شما بخواهید برای نوشتن برنامهء خود از یک IDE (Integrated Development Environment) استفاده کنید. شما میتوانید از Java 2 SDK, Standard Edition v. 1.4استفاده کنید که دربر دارندهء یک IDE به نام Sun™ ONE Studio 4, Community Editionکه قبلا با نام ForteTM for JavaTM, Community Edition شناخته میشد، استفاده کنید. شما میتوانید این IDE را از اینجا بگیرید.
2. ساختن اولین application شما
اولین برنامهء شما،HelloWorldApp ، خیلی ساده به شما پیغام "Hello World!" را نشان میدهد. برای نوشتن این برنامه شما باید:
- یک فایل جاوا بنویسید. یک فایل جاوا تشکیل شده از متنی که به زبان برنامه نویسی جاوا نوشته شده؛ متنی که برای شما و دیگر برنامه نویسان جاوا قابل فهم باشد. شما میتوانید از هر ویرایشگر متنی برای نوشتن این برنامه استفاده کنید.
- Compileکردن فایل جاوا به bytecode . Compiler (javac) ، فایل شما را گرفته و متن آنرا به دستورالعملهایی تبدیل (ترجمه) میکند که قابل خواندن توسط "ماشین مجازی جاوا" (JVM = Java Virtual Machine) باشد. Compiler این دستورالعملها را به bytecode تبدیل میکند.
- اجرای برنامهء تبدیل شده به bytecode . مفسر جاوا (java interpreter) که روی کامپیوتر شما نسب شده، Java VM را پیاده سازی و اجرا میکند. این مفسر bytecode های شما میگیرد و با ترجمه کردن آنها به دستورالعملهایی که برای کامپیوتر شما قابل فهم هستند، آنها را اجرا میکند.
چرا bytecode ها چیزهای خوبی هستند!
احتمالا شنیده اید که با برنامه نویسی جاوا، میتوانید "یکبار بنویسید، هرجا میخواهید اجرا کنید." این بدان معنیست که در هنگام compileکردن برنامه، اطلاعات فقط برای استفاده از یک محیط (platform) خاص تولید نمیشوند. بلکه bytecodeها تولید میشوند که دستورالعملهایی برای استفادهء "ماشین مجازی جاوا"((JVM = Java Virtual Machine میباشند. در نتیجه اگر محیط شما –اعم از اینکه Windows ، UNIX،MacOS و یا یک Internet Browser باشد- دارای JVM باشد؛ میتواند bytecodeها را بخواند.
الف. نوشتن یک فایل جاوا.
برای ساختن اولین فایل جاوا، دو راه حل دارید:
- میتوانید فایلHelloWorldApp.javaرا روی کامپیوتر خود ریخته و از نوشتن دستورها خودداری کنید. سپس میتوانید مستقیما به قسمت ب بروید.
- یا، میتوانید دستورهای زیر را دنبال کنید:
1.NotePad را باز کنید و کدهای زیر را در آن وارد نمایید:
/**
* The HelloWorldApp class implements an application that
* displays “Hello World!” to the standard output.
*/
public class HelloWorldApp {
public static void main(String[] args) {
// Display “Hello World!”
System.out.println(“Hello World!”);
}
{
هنگام تایپ کردن مراقب باشید
همهء کدها را دقیقا همانطور که در بالا نوشته شده بنویسید. زیرا compiler و مفسر (interpreter) جاوا ، case-sensitive هستند؛ یعنی به کوچک یا بزرگ بودن حروف حساسند.
HelloWorldApp helloworldapp
2.این کد را در یک فایل ذخیره کنید. در menu bar، File > Save As را انتخاب کنید.
- در قسمت Save in دایرکتوری را که میخواهید فایلتان را در آن ذخیره کنید؛ مشخص نمایید. در این مثال، دایرکتوری java در درایو c محل ذخیرهء فایل انتخاب شده.
- در قسمت File name تایپ کنید : "HelloWorldApp.java" .
- در قسمت Save as type ، Text Document را انتخاب کنید.
خود آموز SQL به شما نحوه استفاده از SQL و دستیابی وکنترل داده ها را توسط آن در MY SQL,MS ACCESS ,SQL SERVER, ORACLE, SYBASE,DB2 و دیگر سیستم های پایگاه داده ای آموزش میدهد.
SQL چیست؟
SQL بر پایه زبان پرس و جو ساخت یافته میباشد
SQL به شما اجازه دستیابی و کنترل داده ها را می دهد
SQL یک استاندارد ANSI( انجمن استاندارد ملی آمریکا) میباشد.
SQL چه کاری انجام میدهد؟
SQL میتواند درخواستهای پیوسته یک پایگاه داده را اجرا کند
SQL متواند دوباره اطلاعات را از پایگاه داده پس بگیرد
SQL میتواند یک رکورد شامل اطلاعات را در پایگاه داده ذخیره کند
SQL متواند اطلاعات پایگاه داده را به روز رسانی کند
SQL میتواند هر قسمت از اطلاعات را از پاگاه داده اصلاح یا حذف کند
SQL میتواند یک پایگاه داده تازه بسازد
SQL میتواند جداول حاوی اطلاعات جدید را به پایگاه داده اضافه کند
SQL اجازه تنظیم جداول و شیوه دستیابی به اطلاعات و نحوه نمایش اطلاعات را میدهد.
SQL یک استاندارد است اما ...
با وجود آنکه SQL یک استاندارد است اما ورژن های مختلفی از آن وجود دارد
به هرحال SQL یک استاندارد ANSI میباشد و با آن مطابقت دارد و از تمام دستورات اصلی از طریق مشابه پشتیبانی میکند مثل(SELECT,UPDATE ,DLELET,INSERT,WHERE)
نکته : بسیاری از برنامه های پایگاه داده ای SQL شاخه های اختصاصی خودشان را به استاندارد SQL اضافه میککنند.
استفاده از SQL در وب سایت خود
اگر میخواهید وب سایتی بنویسید که از پایگاه داده اطلاعاتی را نمایش دهد به ابزار زیر احتیاج پیدا خواهی کرد:
یک برنامه RDBMS (MY SQL,SQL SERVER, MS ACCESS)
یک زبان سمت کاربر مانند PHP ,ASP,
SQL
HTML/CSS
RDBMS (سیستم مدیریت پایگاه داده ای)
RDBMS بر پایه RELATIONAL DATABASES MANAGEMENT SYSTEM میباشد.
RDBMS پایه ای برای SQL و تمام سیستم های پایگاه داده ای جدید(,SQL SERVER, ORACLE, SYBASE,DB2 MYSQL,MS ACCESS ) میباشد.
در RDBMS داده ها و اطلاعات موجود در پایگاه داده در جداول ذخیره میگردد.
جدول یک مجموعه ای است از اطلاعات ثبت شده مرتبط و وابسته به هم که از ستون ها و ردیف ها تشکیل شده است.
دو نوع سیستم دیتابیس داریم که در زیر به معرفی آنها می پردازیم:
OLTP (online transaction processing).1
در این نوع سیستم بوسیله نرمال کردن داده ها (در مورد نرمال سازی دیتابیس در پست های بعدی توضیح داده خواهد شد ) بروز رسانی داده ها بسیار سریع و کوتاه خواهد شد. تعییرات زیاد در این نوع سیستم ها،پشتیبان گیری از دیتابیس را امری الزامی می سارد.سرعت خوب در اینگونه سیستم ها امری ضروری است. بنابراین در این نوع سیستم ها از ایندکس گذاری به وفور استفاده می شود.(در مورد ایندکس در پست های بعدی توضیح داده خواهد شد)از ایندکس گذاری به منظور دسترسی سریع به داده های جداول استفاده می شود.
OLAP (online analytical processing) .2
در این نوع سیستم ها بروز رسانی داده ها به ندرت انجام می شود. بنابراین پشتیبان گیری از دیتابیس به عنوان یک عمل نهایی تلقی می شود و کمتر انجام می شود. بیشتر پردازش مربوط به آنالیز داده های موجود می باشد. برخلاف سیستم های OLTP از طراحی استاندارد و نرمال سازی استفاده نمی شود. از ایندکس گذاری هم به ندرت استفاده می شود. در این نوع دیتابیس ها، معمولا یک یا دو جدول بزرگ وجود دارد بر خلاف OLTO که در آن چندین جدول با یکدیگر در ارتباط هستند.
با توجه به تعاریف مشخص است که ما از نوع اول (OLTP) در این دوره آموزشی استفاده می ک
یکی از مباحث مهمی که در برنامه نویسی شبکه وجود دارد، مبحث سوکت هاست. این که سوکت ها در واقع چی هستند، به چه دردی میخورند و در واقع نحوه استفادشون به چه صورتی هست ؟
مطلب امروز درباره مقاله بلندی یا در واقع کتاب کوچکی است که به سادگی شما رو با سوکت ها آشنا خواهد کرد.
این مقاله مفید با حجم کم ۲۶ صفحه ای برای آشنایی مقدماتی با نحوه کار سوکت ها مناسب است.
توضیح دیگه ای رو لازم نمی بینم، با استفاده از لینک زیر میتوانید کتاب را دانلود کنید :
در این دوره زبان یکپارچه مدلسازی UML به عنوان ابزاری برای تعاملات کم ابهام با سایر اعضای تیم و توصیف نرمافزار از دیدگاه های ایستا، پویا، عملکردی و نمودارهای متناسب با هر دیدگاه و نحوه تولید آنها در ابزارهای متناسب آموزش داده و با معرفی گسترشپذیری زبان نحوه تطابق با امکانات شیگرایی جدید زبان های برنامه نویسی نظیر Extension Method ها و ... معرفی میگردد و استفاده از ابزار کمکی Rational Rose آموزش داده میشود.
جهت اطلاعات بیشتر به سایت http://www.tahlildadeh.com مراجعه نموده و یا با شماره تلفنهای 88146330 و 88146323 تماس حاصل فرمایید.
اهداف دوره :
1- در این دوره ، دانشجو علاوه بر دیاگرام های UMLبا مفاهیم تحلیل و طراحی شیء گرا نیز آشنا می شود.
2- دانشجویان می توانند نمودارهای UML مربوط به تیم نرم افزاری خود را خوانده و درک کنند .
3- تحلیل گران می توانند تحلیل ، طراحی و پیاده سازی نمودارهای مدل سازی محیط نرم افزاری را انجام دهند .
4- مهندسین صنایع خواهند توانست درک کاملی از نحوه طراحی شیء گرای محیط های عملیاتی کسب نمایند .
5- دانشجویان می توانند مراحل توليد و ساخت را با كمك مشخصات پيشرفته Class ،State Machine و Component انجام دهد.
6- مرحله انتقال را با كمك Deployment Diagram تكميل نمايند.
مخاطبین دوره
برنامهنویسان، طراحان، تحلیلگران، معماران، تستکنندگان، مهندسین فرایند و به طورکلی کلیه اعضای فنّی تیم تولید نرمافزار که نیاز به تعامل حضوری یا غیرحضوری ایدههای عناصر و فراوردههای نرمافزاری یا مسائل تولید از دیدگاه خود با سایر تخصصهای تیم دارند.
· همچنین مهندسین و مدیرانی که کار آنها بر فرایندهای سازمانی با اهداف مختلف نظیر بهبود سازمانی، یا تحقق استانداردهای ISO 9001 و ... تمرکز دارد و نیاز به مدلسازی فرایندهای سازمانی دارند.
پیشنیاز
آشنایی با مفاهیم شیگرایی ویا یک زبان برنامه نویسی شی گرا
مدت دوره
30 ساعت
ردیف
نام مدل
معادل فارسی
کاربرد
1
Use case Diagram
دیاگرام موارد کاربرد
تحلیل
2
Activity Diagram
دیاگرام فعالیت
تحلیل
3
Class diagram
دیاگرام کلاس
تحلیل – طراحی
4
State Chart Diagram
دیاگرام حالت
تحلیل
5
Sequence Diagram
دیاگرام توالی
طراحی
6
Interaction OverView Diagram
دیاگرام همکاری
طراحی
7
Component Diagram
دیاگرام اجزاء
معماری
8
Deployment Diagram
دیاگرام توزیع
معماری
9
Object Diagram
دیاگرام اشیاء
طراحی
10
Composite Structure Diagram
دیاگرام ساختار ترکیبی
طراحی
11
Package Diagram
دیاگرام بسته بندی
تحلیل – طراحی
12
Timing Diagram
دیاگرام زمانی
طراحی
13
Communication Diagram
دیاگرام ارتباطات
طراحی
اهداف دوره:
در این دوره ، دانشجو علاوه بر دیاگرام های UMLبا مفاهیم تحلیل و طراحی شیء گرا نیز آشنا می شود.برای ایجاد دیاگرام های UML، شرط لازم تسلط بر تحلیل و طراحی شی گراء می باشد.اصولا دانشجویان این دوره به دو دسته تقسیم می شوند. UML Readerها و UML Writerها
دسته اول کسانی هستند که می توانند دیاگرام های UMLرا بخوانند واطلاعات لازم برای کارهایی مانند برنامه نویسی و غیره را از آن استخراج کنند. و دسته دوم کسانی هستند که می توانند دیاگرام های UMLرا ایجاد کنند.
محتوای دوره:
مقدمه ای بر UML:
1) اهمیت مدل سازی
2) دلائل مدل سازی
3) معرفی UML
4) منشاء UML
5) UMLچیست؟
6) چرا از UMLاستفاده می شود؟
7) UMLبه عنوان یک زبان
8) اسامی عناصر UML
9) قابلیت توسعه UML
10) کاربرد UML در فیلد های نرم افزار هایی مختلف
11) فرقUMLو RUP
12) ارتباط UMLبا تحلیل و طراحی نرم افزار
13) معرفی دیاگرام های UML
14) دیاگرام های دینامیک و استاتیک
15) دیاگرام های تحلیل ، طراحی و معماری
دیاگرام فعالیت (Activity Diagram) :
1) ساخت یک دیاگرام فعالیت
2) کاربرد دیاگرام فعالیت
3) نحوه تشخیص فعالیت ها
4) مدل سازی فعالیت های موازی
5) خطوط شنا (SwimLane)
6) نمایش انشعاب شرطی (Branch Condition) در یک دیاگرام فعالیت
7) کاربرد های مختلف دیاگرام فعالیت
8) مدل سازی فرایند های سازمان
9) مدل سازی موارد کاربرد پیچیده
10)مدل سازی متد های پیچیده
11)استفاده از Note در دیاگرام فعالیت
دیاگرام موارد کاربرد (Use Case Diagram) :
1) تعریف اکتور
2) نحوه پیدا كردن اکتور ها
3) انواع اکتور
4) نامگذاری اکتورها
5) رابطه اکتور با Use Case ها
6) نحوه پیدا كردن Use Case ها
7) چگونه یك Use Caseتوصیف می شود
8) نامگذاری یك Use Case
9) توصیف اجمالی (Brief Description)
10)پیش شرط ها (PreConditions)
11)پس شرط ها (Postconditions)
12)روند اصلی (Basic Flow of Events)
13)روند های فرعی (Alt flow of events)
14)نیازمندیهای غیر عملیاتی (Supplementary Behavior)
15)روابط بین Use Caseها
16)رابطه Include
17)رابطه Extend
18)استفاده از State Diagramجهت تشریح Use Case
19)استفاده از Activity Diagramجهت تشریح Use Case
نمودار کلاس (Class Diagram) :
1) تعریف کلاس
2) نماد کلاس در UML
3) نامگذاری کلاس ها
4) ویژگی های کلاس
5) متد های کلاس
6) روابط بین کلاسها
16) رابطه وراثت (Generalization)
17) 1-7) کلاس پایه
18) 2-7)کلاس های فرزند
19) 3-7)ارث بری چند گانه
20) 4-7) کلاسهای مجرد
21) 5-7) متد های مجرد
22) 6-7) چندریختی
7) رابطه انجمنی ( Association)
1-8)انجمنی یکطرفه و دو طرفه
2-8) نقش هر کلاس در رابطه انجمنی
3-8) هر کلاس در رابطه انجمنی (Multiplicity)
4-8) تبدیل روابط انجمنی n-nبه روابط 1-n
8) رابطه Aggregation
9) رابطه Composition
10)تفاوت رابطه Aggregationبا رابطه Composition
11) Association Class
12)رابطه وابستگی (Dependency)
13)سطوح دسترسی به ویژگی ها و متد های یک کلاس
14)متد ها و ویژگی های استاتیک
15)چگونگی تشخیص و استخراج کلاسها
16)روش های حرفه ای تر در طراحی کلاسها
17)انواع کلاس ها در یک برنامه نرم افزاری
نمودار وضعیت (State Chart Diagram) :
1) ایجاد یک نمودار تغییر وضعیت
2) نمودار وضعیت به عنوان یک دیاگرام تحلیل و طراحی
3) تشخیص وضعیت ها
4) نام گذاری وضعیت ها
5) جزئیات یک وضعیت
6) 1-5) فعالیت (Activity)
7) 2-5) یک عمل ورودی (Entry Action)
8) 3-5)فعالیت خروجی (Exit Action)
9) 4-5)فرستادن Eventبه آبجکت دیگر
10)5-5)تاریخچه حالت (State History)
11)گذر ها (Transition)
12)جزئیات یک گذر
13)1-7) رخداد (Event)
14)2-7)حالت شرط (Guard Condition)
15)3-7) فعالیت (Action)
نمودارهای توالی(Sequence Diagram) و همکاری (Collaboration) :
16)ساخت یک نمودار ارتباط
17)یافتن آبجکت ها
18)افزودن Msg به یک دیاگرام توالی
19)انواع Msgها در یک دیاگرام
20)نگاشت یک Msgبه یک عملیات
21)استفاده از دیاگرام توالی برای نشان دادن معماری نرم افزار و لایه بندی آن
22)خط عمر یک آبجکت
23)چگونگی نمایش Loopها در یک دیاگرام توالی
24)چگونگی نمایش شرط ها (if) در یک دیگرام توالی
نمودار اجزاء (Component Diagram) :
25)نمودار اجزاء به عنوان یک نمودار معماری
26)چگونگی تشخیص اجزاء
27)اجزاء (Component)
28)نام گذاری اجزاء
29)اجزاء و کلاس ها
30)تفاوت بین اجزاء و کلاس ها
31)تشابه بین اجزاء و کلاس ها
32)اینترفیس
33)ارتباط بین اجزاء و اینتر فیس ها
34)انواع اجزاء استاندارد
35)مدل سازی فایل های قابل اجراء و کتابخانه کلاس ها
آموزشگاه تحلیل داده از سال 1380 تاکنون به عنوان یک آموزشگاه تخصصی در حوزه آموزش برنامه نویسی، بانکهای اطلاعاتی، نرم افزار و شبکه فعال است. خط مشی روشن آموزشگاه در ارایه آموزشهای اصولی، کاربردی، تخصصی و متناسب با نیاز روز و همچنین بهره مندی از اساتید با دانش و خبره باعث شده است این موسسه در زمره موسسات آموزشی حرفه ای ایران قرار گیرد.