Asp.Net Web Application နှင့် Tiers ခွဲခြင်းသဘောတရား
ကျွန်တော်တို့ Web Application တစ်ခုကို Develop လုပ်ရာမှာ Tier တွေ ခွဲပြီး အလုပ်လုပ် ကြလေ့ ရှိပါတယ် ။ ပြည်တွင်းမှာ သာမက ပြည်ပသို့ပါ သွားရောက် အလုပ်လုပ်မယ့် Web Developer များ အတွက် အရေးတကြီး ခွဲခြားသိထားသင့်တဲ့ အချက် တစ်ခုဖြစ်ပြီး One tier နဲ့ Multi Tiers များရဲ့ သဘောတရားကို ခွဲခြားသိထားပါမှ Web Application တစ်ခုကို အခက်အခဲ မရှိ အဆင်ပြေပြေ Develop လုပ်နိုင်မှာ ဖြစ်ပါတယ် ။ ဒီ Post မှာ One Tier ရဲ့ အားသာချက် အားနည်းချက်များကို ရှင်းလင်း ဖေါ်ပြပေးထားပြီး Multi Tier ကို လည်း ဘာကြောင့် Develop လုပ်သင့်တယ် ၊ လုပ်ကြရတယ် ဆိုတာကိုပါ ထည့်သွင်း ဖေါ်ပြပေးထားပါတယ် ။
ဒီ အောက်က Link မှာ Download ရယူနိုင်ပါတယ် ။
Web Application And Tiers.doc Part – I
Facebook comments:



ကျွန်တော်တို့ PHP development ပုံစံနဲ့ မတူဘူးဗျ… မှတ်သားစရာပဲ…
Saturn, PHP is not for enterprise application development.
Application layering is beyond the scope of web application.
Not true, most of the Python web frameworks (Django, Pylon and Web2Py) and RoR have application layering.
I do not mean, it can’t be apply for web application. It’s a software architecture, that can be used in every where. The above author do not disucss the important points of application layering such as different kinds of client with the same business components, maintainability of the business components layer or data access layer and so on. So I’m afraid that somebody will think about application layering is only using for web application.
Mr.Sean .. what Cuboid talk is “PHP is not for enterprise application dev”. xD
anybody dare not underestimate your love (py,rails) . just for fun =P
Hi Cuboid,
PHP can be used for Enterprise Application development. It’s just a matter of how you would want to use, your programmers’ ability and knowledge. ASP.net is a framework and PHP is scripting language. In order to use PHP in enterprise development, we use PHP frameworks and other third party tools as well. For example, check out Zend.com and its PHP products for enterprise level development. There is also a case study for http://www.tagged.com/ which is being built by PHP. It’s a social networking website and growing rapidly to serve more than 60 million users.
Please check this link for friendster’s architecture using PHP => http://highscalability.com/blog/2007/7/11/friendster-architecture.html. That site has a lot of interesting case studies for both ASP.net and PHP.
Performance, rapid development, reliability, security, extensibility, high availability, and multiple tier development, whatever you name it, you can do with PHP as well.
I am just filling in, I don’t mean PHP is better or worse. I have been working with PHP for many years and I am also working with Asp.net. Both platforms have pros and cons.
ဒီပို့စ်လေး သဘောကျပါ၏။ နောက်ဆက်တွဲများအား မျှော်နေပါ၏။
Tier က MVC နဲ့ သဘောတရားမျိုးပါပဲ။ .ဒီ MVC @ Tier တွေကို systematically ကျကျလုပ်နိုင်တာတွေက .NET ရဲ့ အဓိကကောင်းမွန်တဲ့ နည်းစနစ်တစ်ခုပါ။
ကို Sean Lin ရေ …
ကျွန်တော် အခုဆွေးနွေးနေတာက Asp.Net Web Application အပိုင်းဖြစ်ပါတယ် ။
ဒါပေမယ့် ကို Sean Lin ကျေးဇူးကြောင့် ခေါင်းစဉ်မှာ မေ့ကျန်ခဲ့တဲ့ Asp.Net ဆိုတာလေးကို ထည့်ပေါင်းပေးလိုက်ပါတယ် ။
ကို Cuboid ရေ ..
ဒီခေါင်းစဉ်လေးက Asp.Net Web Developer များ အတွက်သာ ရည်ရွယ်ပါတယ် ။ လိုအပ်ချက်တွေ ထောက်ပြပေးရုံမျှမက ယခု ထက်ပိုတဲ့ ရှင်းလင်းချက် Comment များကိုပါ ဝင်ရောက်ဆွေးနွေး စေလိုပါတယ် ။ ဒါမှသာ ဒီ Post ဟာ နောင်တချိန်မှာ ပြီးပြည့်စုံတဲ့ Post တစ်ခု ဖြစ်လာနိုင်ကြောင်းပါ ။
ဝေဖန်အကြံပေးချက်များ အားလုံးကို ကျေးဇူးတင်ပါတယ် ။ ” မိမိ အမြင်များကို လွတ်လပ်စွာ ဆွေးနွေးနိုင်ရန် လည်း ဖိတ်ခေါ်အပ်ပါတယ် ” …
” လိုအပ်ချက်တွေ ထောက်ပြပေးရုံမျှမက ယခု ထက်ပိုတဲ့ ရှင်းလင်းချက် Comment များကိုပါ ဝင်ရောက်ဆွေးနွေး စေလိုပါတယ် ။”
I am expecting “Cuboid” will answer the above question of “String Live”. He/She might be busy and I provide with my comments.
The important points of application layering
such as different kinds of client with the same business components
(It means 3 different type of UI with same business components.
eg. Windows Form/SilverLight/WPF client, Web Application product, PocketPC/Windows Mobile 7 client of Sale Force Automation System or CRM system)
These 3 different application are referencing the same business components.
maintainability of the business components layer or data access layer
you can change all the business rule according to policy in the business components layer and all the changes will reflect on all the different types of client applications.
How will you answer this question?
your customer said I want to use MySQL or Oracle as backend database instead of MS SQL Server.
A good data access layer design can handle that kind of request.
(swapping of the database related dll on the runtime based on the config settings)
I also have one blog post on myanmarITpros about this .net layering architecture.
Please check it.
http://www.myanmaritpro.com/profiles/blogs/1445004:BlogPost:27237
if you are lazy to go, here is the short version.
UI -Responsibility (to present an interface to user and capture the user input data to the system)
Things your pages shouldn’t know about :
UI shouldn’t know about a physical data store exists. your asp.net pages (including code behind cs file)
shouldn’t have database related code (command,connectionstring).
Things your pages should know:
your domain model or your DTO. get the input from the users and pass the value to DTO and give to BLL.
BLL -Responsibility (to write validation logic/business rule code)
Things your BLL shouldn’t know about :
BLL shouldn’t know about there is a database. BLL shouldn’t know about anything expect your DTO object.
Things your BLL should know: BLL should know about business rules.
DAL -Responsibility(to get the data from Database or to put the data to database)
Things your DAL shouldn’t know about :
DAL shouldn’t know about HTML, asp.net. DAL shouldn’t know about business rules.
Things your DAL should know :
It should know about accessing data in whatever form it’s stored. eg. Oracle,MSSQL,MySQL,XML,webservice
DataStore -Responsibility (Storing of the data)
If your data store is database, you may have store procedure for CURD operations (Create,Read,Update,Delete).
If you use ORM, there will be no storeprocedure.
dev2709
ps -current dot net business application trend is moving to Domain Model Architecture. Layering alone is not enough for Test Driven Development.
ကျေးဇူးပါပဲဗျာ မနေ့က ရှည်ရှည်လျားလျား ရေးလို့မရလို့ မရေးခဲ့ရဘူး dev2709 ရေးထားပေးတာ သိသင့်တဲ့ ဒေါင့်ပေါင်းစုံ ပြောထားပြီးသားပါ စိတ်ဝင်စားရင် အဲဒါတွေ အသေးစိတ်ရှာဖတ်လို့ ရနိုင်ပါတယ်။ စကားမစပ် He/She မှာ He ပါ She တော့မလုပ်ပါနဲ့
For web development, MVC pattern would be ideal choice for small to large scaled applications. Virtually every Web Application development frameworks support MVC. ASP.NET developers have ASP.NET MVC.
But, that doesn’t mean MVC is same to 3-Tire (which original stated in his doc). The 3-Tier architecture is a system architecture, while MVC is an application pattern.
Thanks, Ei Maung. I thought MVC and 3-tier are the same visually and got recently know the definition of MVC and 3-tier in the following thread http://forums.asp.net/p/1020216/1379168.aspx
အားလုံး ပူးပေါင်းပါဝင် ဖြေဆိုပေးထားတဲ့ အတွက် ကျေးဇူးပါ …
layer ဆိုတာ logicအားဖြင့် (တနည်းပြော၇ရင် module အားဖြင့်) ခွဲခြားထားခြင်းဖြစ်ပြီး
tier ဆိုတာကတော့ physical အားဖြင့်( database, server,client အားဖြင့်) ခွဲခြားထားခြင်း ဖြစ်ပါတယ်။
Reference : http://lovelace.yolasite.com/blog/layer-and-tier-architecture