با سلام به دوستان عزیز
شنیدم که میگن میشه در دات نت بصورت چند لایه ( چند سطحی ) برنامه نوشت . میخوام بدونم برنامه نویسی چند لایه یعنی چی ؟! . اگر یک مثال ساده و یک مثال نیمه سخت بزنید ممنون میشم.اگه کد هم داشته باشه که خیلی عالی میشه.
با سلام به دوستان عزیز
شنیدم که میگن میشه در دات نت بصورت چند لایه ( چند سطحی ) برنامه نوشت . میخوام بدونم برنامه نویسی چند لایه یعنی چی ؟! . اگر یک مثال ساده و یک مثال نیمه سخت بزنید ممنون میشم.اگه کد هم داشته باشه که خیلی عالی میشه.
به برنامه هایی که به چند قسمت کلی تقسیم میشن و هر قسمت در یک لایه مجزا اجرا میشه ولی مجموعه همه این قسمتها با هم برنامه رو تشکیل میدن برنامه های چند لایه میگن. معمولا برنامه ها 3 لایه یا 5 لایه هستند. برنامه های 3 لایه شامل Presentation Layer و Business Logic Layer و Database Layer میشوند و در برنامه های 5 لایه هم لایه منطق تجاری برنامه رو به 3 لایه دیگر تقسیم میکنند.
آخرین ویرایش به وسیله omid_Ahmadi : شنبه 05 شهریور 1384 در 08:12 صبح
بله . متشکرم از شما . اما آیا در جاوا که .NET نداره میشه چند سطحی نوشت ؟
کسانی که از جاوا استفاده میکنند برای این کار از J2EE استفاده میکنند.
ممنون از اینکه جواب دادید(همه دوستان). اما این چیزی که شما گفتید تغریبا فقط ترجمه چند سطحی بود.شایدم من یه کم .... دیر میفهمم . میشه لطفا بیشتر راهنمایی کنید.
خوب یک مدل ساده برنامه که شامل 3 لایه باشه معمولا به این صورت طراحی میشه. فرض کنید یک شرکت یک شیکه LAN داخلی که کامپیوترهای اون رو به هم متصل میکنه داره. برای نوشتن یک برنامه 3 لایه که بتونه کارهای مختلف اون شرکت رو مدیریت کنه به صورت زیر عمل میکنند. لایه اول همونطور که گفتم Presentation Layer یا لایه ارایه دهنده است که معمولا رابط کاربری که در کامپیوتر کلاینتها نمایش داده میشه مد نظره. لایه دوم Business Logic Layer یا لایه ای است که منطق تجاری برنامه و طریقه عملکرد اون در این لایه قرار میگیره. لایه سوم هم Database Layer یا لایه بانک اطلاعاتی است که معمولا شامل یک یا چند سرور بانک اطلاعاتی میشه که اطلاعات مربوط به برنامه رو نگهداری میکنند. لایه دوم در حقیقت اطلاعات خواسته شده توسط کاربران لایه اول رو از لایه بانک اطلاعاتی دریافت میکنه و بعد از تجزیه و تحلیل اونها رو به کاربر نمایش میده
توسعه یک نرم افزار چند لایه ارتباطی به زبان و یا حتی platform کد نویسی نداره. در مورد این مساله در زمان طراحی نرم افزار بحث میشه. امکان داره که هر لایه در یک بستر کاملا جدا توسعه داده بشه. حتی در یک لایه ممکنه از 2 بستر یا زبان مختلف استفاده بشه. این یک تکنولژی جدید نیست که در دات نت استفاده شده باشه یا مثلا در VS 6 نشه چند لایه نوشت. از تکنولژی های خیلی قدیمی که بوجود آوردن یک ساختار چند لایه رو تسهیل می کردن میشه به MTS در NT4 اشاره کرد .
این مساله کاملا یک مفهوم است.
حرف شما کاملا درسته من هم در هیچ قسمتی خلاف این موضوعات رو ذکر نکردم.توسعه یک نرم افزار چند لایه ارتباطی به زبان و یا حتی platform کد نویسی نداره. در مورد این مساله در زمان طراحی نرم افزار بحث میشه. امکان داره که هر لایه در یک بستر کاملا جدا توسعه داده بشه. حتی در یک لایه ممکنه از 2 بستر یا زبان مختلف استفاده بشه. این یک تکنولژی جدید نیست که در دات نت استفاده شده باشه یا مثلا در VS 6 نشه چند لایه نوشت. از تکنولژی های خیلی قدیمی که بوجود آوردن یک ساختار چند لایه رو تسهیل می کردن میشه به MTS در NT4 اشاره کرد .
این مساله کاملا یک مفهوم است.
باز هم تشکر از دوستان . ولی میشه لطفا یک مثال پیاده سازی شده به من معرفی کنید. که من بتونم ببینم چیه !!. در واقع دنبال یک نمونه برنامه, پیاده سازی شده هستم که کد نویسی شده باشه. ( البته در دات نت ). من بتونم Download کنم و اجرا کنم و Source برنامه را هم بتونم ببینم . دو تا مثال میخوام یکی سخت و یکی آسون .
سلام من می خواستم درمورد لایه بندی اطلاعاتی داشته باشم لطفآ اگر کسی مطلبی یا لینکی دارد واسم بفرسته
ساده ترین شکل اون داشتن سه لایه UI و BR و DA هست.
1- در این لایه شما فقط مسایل مربوط به نمایش اطلاعات رو انجام میدید. به عبارت دیگه چیزی که کاربر قراره ببینه.
2-لایه تصمیم گیری و قواعد کاری. مثلا آیا این کاربر مجاز به دیدند این اطلاعات هست یا نه ؟ و فرمولهای محاسبه.
3-این لایه هم که از اسمش پیداست . لایه مربوط به انجام کارهای دیتابیس. عملیات مربوطه.
البته این شکل ساده مسال هستش و در دنیای واقعی این لایه ها افزایش پیدا میکنند.
"لایه" با "چند سطحی" یکیه؟
در این مورد منبع تکمیلی؟
ممنون
این هم منبع :
http://rapidshare.de/files/4520398/1...Tiers.pdf.html
در مورد لایه بندی و برنامه نویسی لایه ای فقط یکسری اطلاعات تئوری دارم آیا کسی به طور عملی اینکاررا در پیش گرفته ؟؟
آیا نمونه کد و یا نمونه برنامه ای هست ؟ و یا اگر ممکنه دوستان راهنمایی کنند که برای برنامه نویسی به این طریق چه روندها و مراحلی باید طی شود ؟؟
البته لینک در قسمت قبل باز نمیشد. اگر منبعی برای دریافت اطلاعات بیشتری هست ، لطفاً مرا راهنمایی کنید.
این لینک که باز نمیشه! فایل وجود نداره. اگه لطف کنید و آپلود کنید ممنون میشم.
با تشکر.
می تونید از مثال Duwamish که ماله خود مایکروسافت هست استفاده کنید. البته مربوط به 2003 هست.
خیلی عالی نیست ولی برای شروع کار چندلایه خوبه.
اگه دات نت 2003 نصب کردید توی همچین آدرسی هست :
D:\Program Files\Microsoft Visual Studio .NET 2003\Enterprise Samples
اگه هم نداریدش از اینجا دانلود کنید:
http://www.microsoft.com/downloads/d...displaylang=en
دوستان من می خوام برنامه نویسی #C و بانک های اطلاعاتی شروع کنم که چند تا سوال برام پیش اومده
1- اولاً دقیقاً نمی دونم از اکسس استفاده کنم یا از sql server ، فکر می کنم اکسس راحت تره ولی نوشته های دوستان رو که می خوندم انگار محدویت هائی رو داره که sql server نداره می خوام بدونم آیا اکسس 2007 هم همین محدودیت ها رو داره ؟
2- ضمناً من نمیدونم برای استفاده از SQL SERVER حتما باید نرم افزارش رو به ویندوزم نصب کنم یا اگه فقط ویژوال استودیو دات نت 2005 رو نصب کنم کافیه ، آخه انگار اونم Sql server داره و اینکه بعد از نصب روش استفاده اونم مثل اکسسه ؟
3- و بعد اینکه من چطوری می تونم یه منبع خوب درباره sql و یا روش استفاده از بانک های اطلاعاتی در سی شارپ بدست بیارم ، آیا می تونم از MSDN ویژوال استودیو 2005 استفاده کنم یا نه ؟
لطفاً رهنمائیم کنید . ( لطفا جوابهاتونو با دلیل بفرمائید ، برام مهمه )
مرســــــــــــــــــــــ ــــی
1) استفاده از اکسس یا SQL Server بیشتر به محیطی که قراره برنامه نهایی در اون مورد استفاده قرار بگیره، تعداد کاربرانی که می خوان در هر لحظه از داده های درون بانک استفاده کنن، مقدار و حجم اطلاعاتی که در بانک ذخیره می شه، حجم انتقال اطلاعات بانک با لایه های دیگه برنامه و ... بستگی داره. اگر فقط به عنوان یادگیری می خواهید بدونید، بهتره به هر دوی این محیط ها آشنا بشید. به این صورت خودتون متوجه می شید که کجا بهتره از چه DBMS ای استفاده کنید. در این سایت مقایسه های زیادی در مورد تفاوت موجود در بانکهای اطلاعاتی وجود داره، می تونید از اونها هم استفاده کنید تا تفاوت نسخه های بانکهای اطلاعاتی رو بهتر درک کنید.
2) استفاده از SQL Server مقداری با Access تفاوت داره. نسخه ای از SQL Server که همراه با VS نصب می شه برای کارهای آموزشی و ابتدایی می تونه نیازتون رو برطرف کنه، اما برای برنامه های واقعی، لازم دارید که از یکی از نسخه های SQL Server (به جز Express) استفاده کنید.
3) اگر به انگلیسی تسلط دارید، کتابهای خوبی برای آموزش این موارد وجود داره که می تونید از اونها استفاده کنید. البته پیشنهاد می کنم اول روی محیطی که می خواهید در اون برنامه نویسی کنید تسلط پیدا کنید، بعد به سراغ بانکهای اطلاعاتی برید.
موفق باشید.
اگر در مورد کار با بانک access نمونه برنامه خواستید بگید براتون میزارم ...
البته فکر کنم توی « نمونه برنامه های #C » بتونی پیدا کنی ....
با سلام خدمت دوستان
و با اجازه از استاد ثباتی
اکسس در ابتدا به عنوان یک سیستم دیتابیس طراحی نشده و هنوزم که انقدر مثلا پیشرفت کرده در رده دیتابیس سیستمها قرار نمیگیره ...
اکسس برای طراحی دیتابیسهای شخصی افراد بر روی ویندوز درست شده با اینکه میشه ازش برای برنامه نویسی هم استفاده کرد ولی فکر نمیکنم کار درست و منطقی باشه
سلام به همگی دوستان
می شه یه Sample برای برنامه نویسی 2 لایه یا 3 لایه تحت Win Application به من یاد بدین یا بگین برم از کجا Download کنم . مثلاً database من Sql هست می خوام از یه جدول Select کنم و داخل Data gridView نشون بدم . نمی نمدونم چه جوری لایه ای بنویسم .
ممنون می شم اگه راهنماییم کنید .
دوست عزیز
سلام
شما باید اول مشخص کنی بر اساس نیاز های سیستمت از کدام یکی از روش ها می خوای برنامه چند لایه بنویسی.
مثلاً WebService یا WinService یا ...
بهتره اول یک سری اطلاعات پایه رو مطالعه کنی.
بعد بر اساس نیازها و امکانات سیستم روشت رو انتخاب کنی .
بعد روی اون روش بصورت جدی کار کنی.
می خواستم Winservice باشه اما لایه ای بلد نیستم .
سلام
شما اول نوشتن WinService رو خوب مطالعه کن.
بعد روی multi tier مطالعه کن.
در نهایت این دو تا رو با هم تلفیق کن.
یه نمونه خیلی خوب پروژه Dwamish هست که می تونی از سایت Microsoft بگیریش
اگه بخام از معماری سه لایه استفاده کنم باید از کلاس استفاده کنم سوال من این است باید همه چیزهایی که می خاهم در پایگاه داده ذخیره کنم به عنوان پارامتر بفرستم یا راه دیگه ای هم داره؟
متشکرم
سلام.
شما مگه می تونید تو C# کدی بنویسید که در درون یک کلاس قرار نگیره؟ (جدا از معماری کار). پس این حرف به چه معنی هستش که "اگه بخوام از معماری سه لایه استفاده کنم، باید از کلاس استفاده کنم". شما چه از معماری سه لایه استفاده کنید، چه نکنید، باید از کلاسها استفاده کنید.
اما در مورد پاسخ سوالتون، که به Data Access Logic Component یا همون DALC بر میگرده. شما این انتخاب رو دارید که از Dynamic SQL ها استفاده کنید. بعنوان مثال دستورات CRUD رو بصورت String در کدتون تعریف کنید و سپس اونها رو اجرا کنید. اما این راه، خطرات SQL Injection رو در پی داره. روش دیگه، استفاده از Stored Procedure هاست. به این ترتیب شما می تونید کلیه اطلاعات رو بصورت پارامترهایی به SP ها بدین و نتیجه رو بگیرین. این روش از روش قبلی بهتره، چون اولا مشکلات امنیتی یاد شده رو نداره و ثانیا SP ها توسط SQL Server (البته اگه بانکتون SQL Server باشه) میتونن Pre-Compiled بشن تا اجراهای بعدی همون SP سریعتر باشه. اما یه روش دیگه استفاده از Built-in Web Service ای هستش که با SQL Server وجود داره. به این ترتیب شما میتونید اطلاعات مورد نظرتون از طریق HTTP و بصورت SOAP fi به بانک ارسال کرده و نتیجه رو به طریق مشابه دریافت کنید.
سلام دوستان
شاید این بار 10 باشه که تاپیک های مختلفی پیرامون برنامه نویسی چند لایه و خاصه 3 لایه مطرح میشه
اما اگه یه جستجو کرده باشیم میبینیم که همه جوابها فقط توضیحاتی بیش در این زمینه نبوده
چه در این فروم و یا حتی در فروم های دیگه
من این تاپیک را ایجاد کردم تا بدور از هرگونه تئوری دوستان نمونه برنامه های سه لایه ای بنویسن و در این تاپیک بذارن تا مشکلات این روش برنامه نویسی هم مرتفع بشه
حتما هم نیاز نیست که برنامه ها دارای فرم ها و تعداد کلاس های زیادی باشن چون کسی وقت نوشتنش را نداره و همچنین آنالیز کردن اونا زیاد وقت میبره
چون هدف یاد گرفتن موضوع هست
مثلا برنامه هایی که دارای یه فرم در بخش (presentation layer) و 2 کلاس یکی در بخش business Logic و یکی هم در بخش database (فکر کنم نوشتن یه چنین برنامه هایی کمتر از 10 دقیقه زمان ببره)
پس از دوستان خواهش میکنم که مطالب تئوری در این زمینه ندهند
برای دوستانی که آشنایی با این روش ندارن و میخواهند از لحاظ تئوری خود را قوی کنند میتونن به لینک های زیر مراجعه کنند
https://barnamenevis.org/showth...A7%DB%8C%D9%87
https://barnamenevis.org/showth...A7%DB%8C%D9%87
https://barnamenevis.org/showth...A7%DB%8C%D9%87
همونطور هم که در لینک های بالا میبینین فقط یه سری توضیحات داده شده
ممنون از همگی
شاید خوب نگشتی
https://barnamenevis.org/showth...A7%DB%8C%D8%AA
من یک برنامه چند لایه درست کردم
خوب برام از لایه ها یک dll میسازه و در لایه اجرایی از اونها استفاده میکنه
اما من نمیخوام کاربر به اون dll ها دسترسی داشته باشه یا بتونه ازش استفاده کنه
چیکار باید بکنم؟ اصلا روش یک برنامه چند لایه همین هست؟
یکی از مزایای چند پروژه بودن این بودکه جدا کامپایل میکرد و ...
راه دیگه ای نیست جز یکی کردن؟
سلام.
کلاسهاتون رو internal تعریف کنید. سپس با استفاده از Strong Naming به اونها اسم بدید و اونها رو Sign کنید. در هر یک از Assembly های نامبرده شده، در فایل AssemblyInfo.cs با استفاده از Attribute زیر به Compiler میتونید بگید که internal های assembly فقط در دسترس فلان assembly ها هستن:
[assembly: InternalsVisibleTo("MyNewAssembly")]به این ترتیب internal های کلاستون، فقط در دسترس assembly ای به نام MyNewAssembly خواهند بود.
این String Naming چجوریه؟
آیا تو این حالت حتی توابع هم دیده نمیشوند؟
و اگه یک برنامه دیگه با همون نام اسمبلی باشه میتونه ببینه و استفاده کنه؟
کد را همیشه میشه تبدیل کرد به dll ولی عکس این کار ممکن امکان پذیر نباشه
کد changeable تر از dll هست
اگه زمانی خواستین کد خود را بهینه کنید ؟ اگه خواستین امکانات دیگه ای به اون اضافه کنید؟فکر کنم با کد راحت تر میشه کار کرد نه؟
البته dll هم مزایایی ویژه و خاص خودش راداره که نباید فراموش کرد
فکر کنم که جواب یکی از اون 1001 دلیلی را که فرمودین دادم
خوشحال میشم اون 1000 تای دیگه را هم بگین تا یه بحث خوب داشته باشیم
موفق باشید