ساخت Transaction در سی شارپ
بسم الله الرحمن الرحیم
آموزش برنامه نویسی آسنگرون در سی شارپ
در مطالب گذشته نحوه اجرای Transaction را در اسکیوال بیان کردم، خوب بسیاری از مزایای این کار بیان شد حال همین موارد را می توانیم در سی شارپ پیاده سازی نماییم، بدون توضیحات اضافی مثالی را بررسی می کنیم:
ادامه مطلب...آموزش PIVOT در SQL Server
بسم الله الرحمن الرحیم
آموزش SQL Server
در بعضی مواقع نیاز است بجای نمایش نام ستون ها، مقدار فیلد به عنوان نام ستون و مقدار آن زیر ستون نمایش داده شود خوب بدون توضیح اضافی یک مثال مطرح می کنیم
SELECT [shiraz],[tehran]
FROM
(
SELECT [name]
,[salary]
FROM [emp]
) AS TEMP
PIVOT
(
SUM(salary) FOR [name] IN ([shiraz],[tehran])
)AS PVT
و در نهایت خروجی دستور
ادامه مطلب...همگام و ناهمگام در SQL
بسم الله الرحمن الرحیم
آموزش برنامه نویسی ناهمگام در سی شارپ
در این بخش می خواهیم در خصوص نحوه و شیوه های اجرای دستورات در اسکیوال مباحثی را معرفی کنیم. همان طور که شما می دانید در زبان های مختلف برنامه نویسی در خصوص نحوه اجرای دستورات دو روش اصلی Synchronize و ASynchronize وجود دارد. در روش Synchronize تا اتمام دستورات نرم افزار شما عملا متوقف شده و به اصطلاح Lock می شود خوب وقتی این اتفاق برای ثبت یک رکورد باشد هیچوقت محسوس نیست اما فکر کنید این فرایند برای ثبت تعداد زیادی رکورد اتفاق بیافتد در این حالت سایر پردازش های نرم افزار شما باید منتظر بمانند تا فرایند کار با اسکیوال به پایان برسد!
در روش دوم ASynchronize، پردازش های اسکیوال شما همراه با سایر پردازش های نرم افزار شما همزمان انجام خواهد شد.
مثال:
برای دانلود مثال لطفا کلیک کنید
عنوان: ASynchronize
حجم: 1.05 کیلوبایت
چطور سرعت واکشی اطلاعات را افزایش دهیم؟
بسم الله الرحمن الرحیم
آموزش SQL Server
در بسیاری از پروژه ها به دلیل حجم پایین اطلاعات و تراکنش اندک در RW کردن اطلاعات هیچ نیازی به بهینه سازی اطلاعات نیست، اماممکن است شما هم مثل بنده بخواهید پایگاه داده ای را طراحی کنید که سرعت واکشی بسیار مهم باشد.
مثلا یک سایت بزرگ را در نظر بگیرید، سایتی مثل facebook این سایت چه تعداد کاربر دارد حجم تبادل اطلاعات آن چقدر است و هر روز به صورت نجومی این حجم اطلاعات در حال افزایش است، واقعا خیلی زیبا است که چطور با این حجم اطلاعات بتوان کار کرد (من شخصا پایگاه دادهایی را بیشتر از چندین گیگابایت تجربه کردم ولی تا این حد را تجربه نکردم) خوب کمی واقعی فکر کنیم! مثلا این را در نظر بگیرید که می خواهید یک سایت جامعه مجازی فقط و فقط برای یک شهر ایران بنویسید و طراحی پایگاه داده آن با شما است.
ادامه مطلب...
معرفی دو DataType در SQL
بسم الله الرحمن االرحیم
آموزش SQL Server
Timestamp
در بعضی مواقع نیاز است شما اطلاعات درون یک پایگاه داده را به صورت Mirror ذخیره کنید، یعنی ما یک پایگاه داده اصلی و یک پایگاه داده پشتیبان داریم که اطلاعات بر روی پایگاه داده اصلی RW می شود و نسخه ای از آن نیز بر روی پایگاه داده دوم بایگانی می شود. خوب فکر کنید این کار را در سطح بسیار کوچکتر و فقط بر روی یک جدول در یک پایگاه داده انجام دهید یعنی اطلاعات این جدول با ارزش بوده و می خواهید به صورت ساده هر تغییری که در اطلاعات جدول شماره یک صورت گرفت بر روی جدول شماره دو انجام شود. راه حل؟
خوب بعضی ها اولین راه را انتخاب می کنند یعنی هر عملیات CUD را بروی جدول شماره یک اگر صورت گرفت بر روی جدول شماره دو نیز همان کار را تکرار می کنند، خوب است.
خوب راه دیگر استفاده از فیلد TimeStamp است که مقدار باینری را در خود نگه می دارد، در صورتی که مقدار رکورد عوض شود مقدار باینری این فیلد نیز عوض خواهد شد
پس اگر بخواهید متوجه شوید که مثلا بر روی رکورد شما توسط کاربر تغییری صورت گرفته می توان با مشاهده مقدار این فیلد، به این جواب برسید مثال:
ادامه مطلب...
آموزش SQL Transaction
بسم الله الرحمن الرحیم
آموزش SQL Transaction
در این بخش قصد دارم مدیریت تراکنش های اسکیوال را به صورت مختصر توضیح دهم
توسط متغییر Global، @@Error می توانیم شماره خطا را بازیابی نماییم اگر خطایی داشته باشیم مقدار این متغییر از صفر بزرگتر است در غیر این صورت مقدار آن صفر است و در صورتی که از این متغییر استفاده کنیم مجددا مقدار این متغییر صفر می گردد
همچنین جهت خواندن شماره خطا می توانیم از Error_Number() استفاده کنیم و جهت چاپ متن خطا از Error_Message استفاده می کنیم
جهت ایجاد یک خطا به صورت دستی می توانیم از RAISERROR استفاده کنیم
مثال
RAISERROR('خطایی رخ داده است',16,1)
به دلیل وجود کاراکترهای فارسی و انگلیسی جای متن خطا از ابتدا به انتها منتقل شده به همین دلیل تصویری در انتهای مطلب قراردادم که گویا ی موضوع باشد
عدد 16 محدوده خطا را مشخص می کند بهتر است همیشه از این عدد استفاده کند چون این عدد خطای ایجاد شده را به برنامه ی شما (مثلا سی شارپ) نیز ارسال می کند.
کاربرد این دستور برای مواردی است که شما می خواهید در صورت برقرار نشدن یک شرط دستورات خاتمه یابد مثلا برای جلوگیری از درج یک رکورد جدید در جدول کاربران با نام کاربری که قبلا ثبت شده است.
در مواردی که شما می خواهید در یک تراکنش تنها بخشی را خاتمه دهید ولی تراکنش همچنان ادامه داشته باشد کافی است که شما از دستور Save Point استفاده نمایید
مثال
BEGIN TRAN PARRNT
INSERT INTO USERS(userName,[password]) VALUES ('A','A')
PRINT 'INSERTED A'
BEGIN TRY
SAVE TRAN INSERT_PART
RAISERROR ('خطایی رخ داده است',16,1)
INSERT INTO USERS(userName,[password]) VALUES ('B','B')
PRINT 'INSERTED B'
END TRY
BEGIN CATCH
ROLLBACK TRAN INSERT_PART
END CATCH
INSERT INTO USERS(userName,[password]) VALUES ('C','C')
PRINT 'INSERTED C'
COMMIT TRAN PARENT
آموزش Constraint
بسم الله الرحمن الرحیم
آموزش SQL Server
در هر پایگاه داده ای که طراحی می شود وابسته به این که این سیستم برای چه محیطی طراحی شده است محدودیت ها و قید و شرطهایی مطرح می شود. مثلا قصد داریم برای یک شرکت تجاری پایگاه داده ای طراحی کنیم و پرسنل این شرکت در هیچ شرایطی در خصوص شروع اضافه کاری نباید ساعات بین 22 الی 6 صبح باشد. راه حل های ساده ای وجود دارد و معمولا اکثر برنامه نویسان این وظیفه را به جای طراحان انجام می دهند و طبیعتا این کار را در Application مورد نظر نوشته می شود خوب راه حل دیگر این است که ما به عنوان طراح این کار را در پایگاه داده انجام دهیم و کمکی به همکار برنامه نویسمان کنیم.
مثال
ادامه مطلب...
آشنایی با SQL
بسم الله الرحمن الرحیم
آموزش SQL Server
DataBase Engine
در واقع مهمترین بخش اسکیو ال است که وظیفه مدیریت و اجرای سرویس های پایه را بر عهده دارد ساخت دیتابیس، مدیریت رشد db، ساخت جداول، جستجو، مرتب سازی، ایندکس کردن، اجرای دستورات، ساخت توابع و پروسیجر و تریگر، امکان برنامه نویسی از راه دور، امنیت، نسخه پشتیبان، اتچ کردن، همه توسط این بخش صورت می گیرد.
نرم افزار SQL Server Business Intellgince
به صورت مختصر و مفید باید گفت برنامه ای است که توانایی اجرای دستورات C# را در اسکیوال دارد.
SSMS
به صورت مختصر و مفید باید گفت نرم افزاری است که توسط آن می توانیم به تمامی امکانات اسکیوال به صورت گرافیکی دسترسی داشته باشیم.
خوب سعی کردم تمام این مطالب را کمی مختصر مطرح کنم تا برسیم سراغ بحث اصلی خودمان، در بعضی ممکن است شما بخواهید بر روی یک سیستم کارها و دستورات اسکیوال را اجرا کنید ولی به دلیل محدودیت هایی نمی توانید اسکیوال سرور را به صورت کامل نصب کنید تا از بخش های مدیریت آن استفاده کنید، خوب راه حل ؟
شما کافی است از نرم افزار کوچکی به نام SQL Comand در Command line استفاده کنید
ادامه مطلب...
Binding and Behavior
بسم الله االرحمن الرحیم
آموزش WCF
Binding
یک تعریف ساده برای Binding توصیف می کند چطور کلاینت با سرویس ارتباط بر قرار خواهد کرد. این مطلب را می توانیم با یک مثال متوجه شویم. این سناریو را در نظر بگیرید، می خواهیم سرویسی را بسازیم که دو نوع مختلف از کلاینت می بایست به آن متصل شوند. یکی از کلاینت ها می بایست به صورت SOAP و با استفاده از http و کلاینت دیگر به صورت Binary و از طریق TCP متصل خواهد شد. این کار چطور می تواند صورت پذیرد؟ با وب سرویس که خیلی سخت خواهد بود، اما در WCF فقط کافی است یک Endpoint ویژه به فایل پیکربندی اضافه کنیم.
<system.serviceModel>
<services>
<service name="MathService"
behaviorConfiguration="MathServiceBehavior">
<endpoint address="http://localhost:8090/MyService/MathService.svc"
contract="IMathService"
binding="wsHttpBinding"/>
<endpoint address="net.tcp://localhost:8080/MyService/MathService.svc"
contract="IMathService"
binding="netTcpBinding"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MathServiceBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
ادامه مطلب...
بخش های یک EndPoint
بسم الله الرحمن الرحیم
آموزش WCF
End Point
سرویس WCF یک برنامه است که یک مجموعه از End Point را ارائه می دهد. هر End Point یک پرتال است که ارتباط را با دنیا را برقرار می کند.
همه ارتباطات WCF از طریق بستر End Point ایجاد می شود. End point شامل سه بخش می باشد.
Address
درواقعURL ، جایی که این سرویس WCF هاست شده است را مشخص می کند. کلاینت از این آدرس جهت برقراری ارتباط با سرویس استفاده خواهد کرد. مثال:
http://localhost:8090/MyService/SimpleCalculator.svc
Binding
توصیف می کند که کلاینت چطور با این سرویس ارتباط برقرار خواهد کرد. پروتکل های متفاوتی برای برقرار کردن ارتباط با کلانیت وجود دارد. شما میتوانید ذکر کنید پروتکل خود را بر اساس نیازی که دارید.
ادامه مطلب...تفاوت بین WCF و وب سرویس
بسم الله الرحمن الرحیم
آموزش برنامه نویسی wcf
Features |
وب سرویس |
WCF |
Hosting |
می تواند در IIS هاست شود |
می تواند در IIS , windows activation service, Self-hosting, Windows service هاست شود |
Programming |
خصوصیت [WebService] باید به کلاس اضافه شود |
خصوصیت [ServiceContract] باید به کلاس اضافه شود |
Model |
خصوصیت[WebMethod] باید به متدی که میخواهید در کلاینت ظاهر شود اضافه شود |
خصوصیت[OperationContract] باید به متدی که میخواهید در کلاینت ظاهر شود اضافه شود |
Operation |
یک طرفه، Request- Response متفاوت پشتیبانی می شود |
One-Way, Request-Response, Duplex متفاوت پشتیبانی می شود |
XML |
نام name space برای سریالایز کردن System.Xml.serialization است |
نام name space برای سریالایز کردن System.Runtime.Serialization است |
Encoding |
XML 1.0, MTOM(Message Transmission Optimization Mechanism), DIME, Custom |
XML 1.0, MTOM, Binary, Custom |
Transports |
قابلیت دسترسی از طریق HTTP, TCP, Custom |
قابلیت دسترسی از طریق HTTP, TCP, Named pipes, MSMQ,P2P, Custom |
Protocols |
Security |
Security, Reliable messaging, Transactions |
ابزار توسعه WCF
بسم الله الرحمن الرحیم
آموزش WCF
برنامه های WCF می توانند با Microsoft Visual Studio توسعه داده شوند همچنین Microsoft برنامه داخلی را توسعه و تست نرم افزار های تولید شده WCF ایجاد کرده است که این نرم افزار با استفاده از دستور wcfClient Serviceurl قابل دستیابی است. این نرم افزار به شما این امکان را می دهد که سرویس خود را قبل از ساختن کلاینت تست نمایید.
ادامه مطلب...مزایا و معایب WCF
بسم الله الرحمن الرحیم
آموزش wcf به زبان فارسی
معرفی WCF
Windows Communication Foundation یک پلتفرم برنامه نویسی و سیستم بلادرنگ برای ساختن، توسعه و پیکربندی سرویس های شبکه های توزیع شده است. کد این روش را آبی نیلی می نامند شاید دانستنش برای شما هم جالب باشد.
این روش آخرین روش در تکنولوژی سرویس گرا (Service oriented) و به احتمال زیاد اساس خصوصیت WCF می باشد، البته روش Web Api از این روش بسیار جدیدتر است یعنی در این زمان که درحال آموزش WCF هستیم Web Api در MVC 4 معرفی شده و بسیار روش جدیدی می باشد که من قبل از پرداختن به آموزش WCF، روش Web Api را نیز معرفی و آموزش داده ام.
این مدل برنامه نویسی یکپارچه فراهم شد در Net Framework 3.0. WCF ترکیب شده از ویژگی های Web Service, Remoting, MSMQ and COM+ می باشد. WCF یک پلتفرم مشترک برای همه ارتباطات NET. فراهم می کند.
ادامه مطلب...
دوره آموزشی WCF
بسم الله الرحمن الرحیم
آموزش wcf به زبان فارسی
قصد دارم مباحث WCF را به صورت کامل توضیح دهم، البته ممکن است در مباحث تئوری توضیحات گیج کننده به نظر برسد و دقیقا متوجه نشوید لطفا صبور باشید و مباحث را ادامه دهید.
چون هیچ منبع مناسب فارسی وجود نداشت سعی کردم مباحث را به صورت کامل از یک منبع کامل برگریم. البته یک آموزش دیگر هم قرار خواهم داد که کوتاه است و فقط برای معرفی و آشنایی خواهد بود که قبلا مطلبی را با همین موضوع انتشار داده ام که انشالله آن را هم نیز ادامه خواهم داد.
در این دوره مفاهیم و نحوه ساختن service وسایر ویژگی های WCF را معرفی کنم. WCF برای شبکه های بزرگ توزیع شده می باشد که توسط مایکروسافت برای ارتباط بین Application ها ایجاد شده است. WCF مخفف عبارت windows communication foundation می باشد، در این بخش تفاوت بین Service و WCF را آموزش خواهم داد.
انشالله که مفید واقع شود
یا علی
آموزش Transaction
بسم الله الرحمن الرحیم
آموزش Transaction
مورد فایل LDF قبلا توضیحاتی ارائه گردید همان طور که قبلا ذکر کردیم نام این فایل Transaction DataBase File می باشد و وظیفه آن ذخیره دستورات برای اجرای کامل آنها در صورت ایجاد مشکل می باشد.
برای استفاده هوشمندانه از این ویژگی می بایست به صورت زیر عمل کنیم:
BEGIN TRAN T1
SELECT * FROM Account
COMMIT TRAN T1
BEGIN TRAN T1
این دستور باعث می شود خطوط بعدی در رم ذخیره شود.
COMMIT TRAN T1
باعث می شود کل دستورات در فایل ذخیره می شود.
ادامه مطلب...معرفی فایلهای SQL
بسم الله الرحمن الرحیم
آموزش SQL Server
هر بانک اطلاعاتی از سه فایل تشکیل می شود:
(Master DataBase File) MDF: فایل اصلی SQL می باشد که تمامی جداول، رکوردها، توابع برنامه نویسی را ذخیره می کند. تمامی فایلها در SQL به قطعه های مساوی 8K تقسیم می شوند که به آنها DataPage گفته می شود هر DataPage تنها اطلاعات یک جدول را نگه داری می کند در صورت ایجاد جدول جدید اطلاعات در اولین DataPage خالی ثبت می شود. در صورتی که DataPage خالی دیگر موجود نباشد از تکنیک File Growth استفاده می شود.
(Transaction DataBase File) LDF: تمامی عملیات هایی که سبب تغییر در پایگاه داده می شود در این فایل ذخیره می شود مثلا Bacth Command ها (به دستوراتی که با هم اجرا می شوند. در واقع در SQL دستورات ابتدا در فایل ذخیره می شود تا در صورتShutDown یا Crash کردن سرور اطلاعات را پس از راه اندازی بازیابی کند و دستورات به اتمام نرسیده را بازیابی کرده و پایگاه داده را به حالت اولیه بر می گرداند.
ادامه مطلب...آموزش Cursor در SQL Sever
بسم الله الرحمن الرحیم
آموزش Cursor در SQL Sever
در بسیاری مواقع شما نیاز دارید اطلاعات را به صورت رکورد به رکورد بررسی کنید، اولین راه حل ایجاد یک برنامه است اما اگر بخواهیم این کار را در SQL انجام دهیم چطور؟ همانطور که مشخص است دستور SELECT این کار را برای ما انجام می دهد با این تفاوت که نمی توانیم تک تک رکوردها را بررسی کنیم بلکه خروجی دستور SELECT یک ResualtSet یا در واقع یک Dataset است.
دستور Cursor می تواند خروجی دستور SELECT را در حافظه نگه دارد و تک تک آنها را بررسی کند.
مثال
@id uniqueidentifier,
@userName varchar(20),
@password varchar(20)
DECLARE AccountRows CURSOR FOR SELECT id,userName,password FROM Account
AccountRows متغییری از جنس CURSOR تعریف کردیم تا اطلاعات را در خود ذخیره کند.
ادامه مطلب...آموزش MaintenancePlan
بسم الله الرحمن الرحیم
آموزش MaintenancePlan در SQL Server
در این بخش قصد دارم بخشی را با عنوان Maintenance plan که یکی از قابلیت های SQL server می باشد معرفی کنم. شما با استفاده از این قابلیت می توانید یک برنامه یا همان plan را تعرفی نمایید و سپس می توانید این plan را در بازه های زمانی مشخص اجرا نمایید و به عنوان یک Job درSQL معرفی نمایید.
سعی می کنم با یک مثال ساده این قضیه را روشن تر کنم. برای این کار من قصد دارم یک plan برای گرفتن بک آپ به صورت روزانه از تمامی دیتابیس ها ایجاد کنم.
در بخش Maintenance plan کلیک راست کنید و بر روی گزینه New Maintenance plan کلیک نمایید و در پنجره باز شده یک نام انتخاب کنید.
در بالای پنجره Maintenance plan بر روی گزینه Subplan Schedule کلیک نمایید و در پنجره باز شده پارامترهای اجرا برنامه و زمان بندی را مطابق انچه نیاز دارید تنظیم نمایید در این جا ما می خواهیم برنامه ما هر روز در یک ساعت مشخص و بدون محدودیت برای همیشه اجرا شود حال پنجره را Ok کنید.
ادامه مطلب...
معرفی ابزار های Net.
بسم الله الرحمن الرحیم
آموزش برنامه نویسی و ابزارهای برنامه نویسی
در ابن بخش چند ابزار کارا را به صورت مختصر معرفی کردم انشالله که برای دوستان مفید واقع شود
Infragistics NetAdvantage for ASP.NET MVC
مجموعه کامل از کنترلهایی ساده و زیبا و پر کاربرد که برای پدید آوردن یک برنامه کاربردی تحت وب مبتنی بر ASP.NET MVC نیاز دارید.
البته نسخه رایگان را در زمان نوشتن مطلب وجود ندارد!
ComponentArt UI Framework 2012
مجموعه ComponentArt UI Framework 2012.1.1016.0 جدیدترین ورژن ComponentArt برای داشتن ظاهری زیبا در برنامه هاست.
مجموعه ی ارزشمند ComponentArt UI Framework 2012.1.1016.0 شامل :
- WebUi for asp.net ajax
- WebUi for asp.net mvc
- WebUi for silverlight
- WinUi for wpf
- SoaUi for .net
مجموعه کامپوننت های قوی شرکت Aspose . با نام Aspose.NET Components را برای طراحان وب و برنامه نویسان ویژوال استدیو و عاشقان زبان های برنامه نویسی ارائه کنیم.
این کامپوننت شامل:
- Aspose.Cells for .NET
- Aspose.Chart
- Aspose.Flash
- Aspose.Pdf.Kit.5.0.0
- Aspose.Recognition
- Aspose.Slides for .NET
- Aspose.Words for .NET
ComponentOne Studio Ultimate 2012 v2 + Enterprise 2012 v2
ComponentOne Studio Ultimate 2012 هفت برنامه بنیادی ، صدها مورد تحت کنترل ، همه و همه تحت یک استودیوی بی نظیر با نام ComponentOne Studio Ultimate جمع آوری شده اند. توسط این مجموعه بی نظیر شما می توانید نرم افزارهایی برای محیط دسکتاپ ، وب و موبایل که کاربرد در زمینه های WinForms, WPF, ASP.NET, Silverlight, iPhone, Mobile و ActiveX دارند را ایجاد کنید. این مجموعه به شما تکنولوژی لازم که برای جذب هر کاربر با هر سلیقه ای نیاز دارید را در اختیار شما قرار می دهد. تمامی نرم افزارهای این مجموعه به روز شده هستند و تحت Net Framework 4.0 قابل اجرا هستند.