Theory
એ જ .NET, હવે browser માં
BCA404 માં તમે VB.NET થી desktop applications બનાવી હતી: બારીઓ, buttons અને એક જ machine પર ચાલતો code. ઉપયોગી ખરું, પણ desktop app ફક્ત એ computer પાસે બેઠેલી વ્યક્તિ સુધી જ પહોંચે છે.
હવે FestConnect ની કલ્પના કરો, એટલે કે કૉલેજના મહોત્સવની એવી વ્યવસ્થા જ્યાં સેંકડો વિદ્યાર્થીઓ પોતાના ફોન અને laptop પરથી events માટે registration કરે છે. એ એક desktop પર નહીં, વેબ પર રહેવું જોઈએ. બરાબર આ જ કામ માટે ASP.NET છે: એ તમે જાણો છો તે જ .NET platform લે છે અને એનાથી તમને web applications બનાવવા દે છે. એ જ ભાષાકુળ, નીચે એ જ .NET Framework, પણ સાવ નવી પહોંચ.
Theory
ASP.NET એટલે શું
ASP.NET એ dynamic web applications બનાવવા માટેનું Microsoft નું framework છે. "Dynamic" એટલે pages code થી બને છે, એટલે નિશ્ચિત HTML file થી ઊલટું, એ દરેક વપરાશકાર અને દરેક request પ્રમાણે બદલાઈ શકે છે.
એ .NET Framework અને એના Common Language Runtime (CLR) ઉપર ચાલે છે, એટલે કે એ જ runtime જે તમારા VB.NET desktop programs ચલાવતું હતું. તમે logic કોઈ .NET ભાષામાં લખો છો (આ વિષયમાં C# વપરાય છે), અને ASP.NET એને web pages માં ફેરવે છે. તમે જે પરંપરાગત શૈલી શીખશો તે છે Web Forms: તમે તૈયાર controls માંથી page ગોઠવો છો અને events નો જવાબ આપતો code લખો છો, ઘણું ખરું desktop forms જેવું જ, પણ વેબ પર પહોંચાડાયેલું.
Formula
મોટો વિચાર: તમારો code server પર ચાલે છે
ASP.NET Web Forms માં તમારો C# code મુલાકાતીના browser માં ચાલતો નથી. એ web server પર ચાલે છે. Server તમારો code ચલાવે છે, પરિણામરૂપે HTML page બનાવે છે, અને એ સાદું HTML બતાવવા માટે browser ને પાછું મોકલે છે.
એટલે browser ને હંમેશા સામાન્ય HTML જ દેખાય છે; .NET નું logic, database ની પહોંચ, ગુપ્ત keys, એ બધું સલામત રીતે server પર જ રહે છે. ASP.NET નું મોટા ભાગનું વર્તન આ એક જ હકીકતથી સમજાઈ જાય છે.
Theory
એક request કઈ રીતે વહે છે
વિદ્યાર્થી કોઈ event માટે registration કરવા FestConnect ખોલે ત્યારે આખો ફેરો આવો હોય છે:
1. Browser server પાસેથી page માગે છે (દાખલા તરીકે Register.aspx).
2. Server એ page માટેનો તમારો ASP.NET code ચલાવે છે: એ database માંથી events ની list વાંચે, કોણ log in થયેલું છે એ તપાસે, અને form બનાવે.
3. Server તૈયાર HTML પાછું મોકલે છે.
4. Browser એને બતાવે છે. વિદ્યાર્થી form submit કરે ત્યારે આ ચક્ર ફરી ચાલે છે.
દરેક આપલે એટલે server ને એક request અને પાછો HTML નો response. આ ચક્ર મનમાં રાખો એટલે ASP.NET નું વર્તન ધારી શકાય એવું બની જાય છે.
Quiz
ASP.NET Web Forms ની application માં તમારો C# page code ખરેખર ક્યાં ચાલે છે?
- મુલાકાતીના web browser માં, JavaScript ની જેમ
- Web server પર, જે પછી browser ને સાદું HTML મોકલે છે
- વિદ્યાર્થીના ફોન પર, .NET Framework download કર્યા પછી
- ક્યાંય નહીં; ASP.NET pages તો static HTML files છે
Show the answer
Web server પર, જે પછી browser ને સાદું HTML મોકલે છે
ASP.NET Web Forms નો code SERVER પર ચાલે છે. Server તમારો C# ચલાવે છે, HTML page બનાવે છે, અને એ HTML બતાવવા માટે browser ને મોકલે છે. વિકલ્પ A તો client બાજુના JavaScript નું વર્ણન છે, જે જુદું છે: browser તમારો .NET code કદી ચલાવતું નથી. વિકલ્પ C ખોટો છે: page જોવા માટે browsers કે ફોન .NET Framework download કરતા કે ચલાવતા નથી; એમને તો ફક્ત HTML મળે છે. વિકલ્પ D ખોટો છે કારણ કે ASP.NET pages dynamic હોય છે, દરેક request પ્રમાણે code થી બને છે, નિશ્ચિત files નથી. 'Code server પર ચાલે છે, HTML browser પર જાય છે' એટલું યાદ રાખો એટલે ASP.NET કઈ રીતે કામ કરે છે એ લગભગ બધું સમજાઈ જાય.
At a glance
| બાબત | VB.NET desktop app | ASP.NET web app |
|---|---|---|
| ક્યાં ચાલે છે | વપરાશકારના પોતાના computer પર | Web server પર, જ્યાં કોઈ પણ browser પહોંચી શકે |
| કોણ વાપરી શકે | એ machine પાસે બેઠેલી વ્યક્તિ | URL હોય તે કોઈ પણ, કોઈ પણ સાધન પરથી |
| વપરાશકારનું આંતરમુખ | Windows Forms ના controls | HTML તરીકે render થતાં web server controls |
| નીચે શું છે | .NET Framework અને CLR | .NET Framework અને CLR (એ જ runtime) |
| કઈ રીતે પહોંચે છે | Install કરેલા program તરીકે | Internet પર મોકલાતાં HTML pages તરીકે |
Think first
Code ને server પર ચલાવવો જ શા માટે?
Code ને browser પર મોકલીને ત્યાં જ ચલાવવા કેમ ન દેવો? Server બાજુ ચલાવવાથી શું મળે છે? વિચારીને પછી tap કરો.
Show the answer
Server પર ચલાવવાથી એવો કાબૂ અને એવી સલામતી મળે છે જે browser બાજુનો code આપી શકતો નથી. Server એ તમારું પોતાનું ભરોસાપાત્ર machine છે: એ database ના passwords સલામત રીતે રાખી શકે, કૉલેજના database સાથે જોડાઈ શકે, કોને registration ની છૂટ છે એ લાગુ કરી શકે, અને ભારે logic ચલાવી શકે, અને આમાંનું કશું તમે અજાણી વ્યક્તિના browser પર મોકલીને ખુલ્લું ન જ કરો. વળી એનો અર્થ એ પણ કે મુલાકાતીએ કશું install કરવું પડતું નથી: કોઈ પણ સાધન પરનું કોઈ પણ browser FestConnect વાપરી શકે છે, કારણ કે એને તો ફક્ત પ્રમાણભૂત HTML જ મળે છે. છેલ્લે, server એક જ કેન્દ્ર પરથી બધા વપરાશકારોને સેવા આપી શકે છે, એટલે એક જ ફેરફાર બધા માટે એકસાથે ચાલુ થઈ જાય છે. ઝડપી આપલે માટે browser બાજુના code (JavaScript) ની ભૂમિકા હજી પણ છે, પણ ભરોસાનું કામ, એટલે કે data, સલામતી અને ધંધાના નિયમો, એ server પર જ રહેવું જોઈએ. ASP.NET આ જ model ની આસપાસ બંધાયેલું છે.
Theory
આ વિષય કઈ દિશામાં જાય છે
હવે તમારી પાસે માનસિક ચિત્ર છે: ASP.NET એટલે વેબ માટેનું .NET, તમારો code server પર ચાલે છે અને browser ને HTML મળે છે. અહીંથી આગળ આ વિષય FestConnect ને ધીરે ધીરે બાંધે છે: પહેલાં page માં તમારો code કઈ રીતે ગોઠવાય છે (code-behind અને CLR), પછી event-driven programming અને server controls નું ઓજારપેટી, પછી data, state અને web services. આખા સમય દરમિયાન server બાજુનું આ ચિત્ર મનમાં રાખજો.
Summary
Key takeaways
- ASP.NET એ dynamic web applications બનાવવા માટેનું Microsoft નું framework છે, જે .NET Framework અને CLR પર ચાલે છે.
- એ વેબ માટેનું .NET છે: તમારી VB.NET desktop apps (BCA404) જેવું જ runtime, પણ હવે કોઈ પણ browser સુધી પહોંચતું.
- પરંપરાગત model એટલે Web Forms: server controls માંથી page ગોઠવો અને events સંભાળતો code લખો.
- સૌથી અગત્યનું, તમારો C# code SERVER પર ચાલે છે; server HTML બનાવીને બતાવવા માટે browser ને મોકલે છે.
- દરેક આપલે એટલે server ને એક request અને પાછો HTML નો response.
- Server બાજુ ચલાવવાથી સલામતી, database ની પહોંચ, અને કશું install કર્યા વગર કોઈ પણ સાધન સુધીની પહોંચ મળે છે.
- યાદ રાખવાની કડી: code server પર, HTML browser પર.