সম্ভবনাময় সেরা দশ ওয়েব ডেভেলপমেন্ট খাত এবং তাদের সম্ভবনাঃ Top 10 Web Technology Trends

সম্ভবনাময় সেরা দশ ওয়েব ডেভেলপমেন্ট খাত এবং তাদের সম্ভবনাঃ
বর্তমান সময়ে ওয়েব ডেভেলপমেন্ট ও সার্চ ইঞ্জিন প্রযুক্তির উৎকর্ষ সাধন হচ্ছে এবং তা হচ্ছে খুব দ্রুত। এই উন্নয়নের ধারাটি ডেভেলপারদেরকে দ্রুত ও সব মাধ্যমে ব্যাবহার উপযোগী অ্যাপ তৈরি করতে সাহায্য করবে।সেই সাথে বাড়বে সাধারন ব্যাবহারে অ্যাপের প্রয়োগও।
বর্তমানে খুব বেশি টেকনিক্যাল জ্ঞান ছাড়াই সাধারন প্রযুক্তি ব্যাবহারকারীরাও অ্যাপগুলো ব্যাবহার করতে পারছে।
বর্তমান সময়ের সেরা দশটি প্রযুক্তি যা সামনের সময়েও রাজত্ব করবে সেগুলো হলঃ
১।থ্রিডি ওয়েব এপ্লিকেসন্স
ওয়েব ব্রাউজার নিয়ে জারা কাজ করে আসছে তারা অনেক আগে থেকেই থ্রিডি ওয়েব এপ্লিকেসন্স নিয়েও চিন্তা ভাবনা করছে, অনেক নতুন আপডেটও হয়েছে এ বিষয়ে।আমরা সম্ভবত সিএসএসথ্রি থ্রিডি ট্রান্সফরমস ইত্যাদির সাহায্যে থ্রিডি ডিজাইনের উত্থান দেখতে যাচ্ছি নতুন বছরে।থ্রিডি ওয়েব এপ্লিকেসন্স ডেভেলপমেন্ট আরও বেশি এগিয়ে যাবে এইচটিএমএল৫ ও অন্যান্য কোডিং ব্যাবহারের মাধ্যমে।
এই প্রযুক্তিগুলোর মাধ্যমে গেম,বিনোদন ও নিত্ত প্রয়োজনীয় অনেক অ্যাপও হয়ে যাবে থ্রিডি নির্ভর।এছাড়াও থ্রিডি ক্যানভাস ডেভেলপমেন্টও এগিয়ে যাচ্ছে সমানভাবে তাল মিলিয়ে,যা অচিরেই জনপ্রিয় ফ্রেমওয়ার্ক হয়ে উঠতে পারে।
.
২।এইচটিএমএল জাভাস্ক্রিপ্ট এপিআইঃওয়েব ডিজাইন তা সে যে ধরনের ডিভাইসের জন্যই হোক না কেন,প্রযুক্তি কর্মীদের প্রধান অস্ত্র হল এইচটিএমএল ও জাভাস্ক্রিপ্ট এপিআই, যা বর্তমানের বিভিন্ন প্লাটফরমের সাথে মানিয়ে ওয়েব এপ্লিকেশন বানাতে অপরিহার্য। এইচটিএমএল৫এর সাথে সহজে কাজ করা যায় যে ধরনের এপিআই সেগুলো মোটামোটি এরকমঃওয়েব স্টোরেজ, ওয়েব ওয়ার্কার্স, ওয়েবসকেট, এপ্লিকেশন ক্যাচি ইত্যাদি।

৩। জাভাস্ক্রিপ্ট এবং ক্লায়েন্ট সাইড ওয়েব এপ্লিকেশনঃ
এ ধরনের প্রযুক্তির বড় সুবিধা হল ব্যাবহারের জন্য ক্লায়েন্টকে খুব বেশি দক্ষ হতে হয়না বা প্রোগ্রামিং ল্যাঙ্গুয়েজ জানতেও হয়না ,কেবল বেসিক কিছু টেকনোলজিকাল জ্ঞান থাকতে হয়। সামনের সময়টাতে আমরা তাই জাভাস্ক্রিপ্ট এবং ক্লায়েন্ট সাইড ওয়েব এপ্লিকেশনের ব্যাবহার আরও বৃদ্ধি পেতে দেখব।এ ধরনের আরও কিছু প্রযুক্তি হল কফিস্ক্রিপ্ট ও ডার্ট যা হয়ত সামনে জনপ্রিয় হতেও পারে।
৪।ফ্রন্টএন্ড ফ্রেমওয়ার্ক ঃ
বিগত সময়ের মত বর্তমানেও ফ্রন্টএন্ড ফ্রেমওয়ার্ক ব্যাবহার করা হচ্ছে ব্যাপকভাবে।যার ব্যাবহার সামনে আরও বাড়বে বলে আশা করা যায়।বিশেষ করে টেস্টিং সার্ভার, টাস্ক রানার ও এরকম আরও কিছু কাজের জন্য এর ব্যাবহার আরও বাড়বে বলে আশা করা যায়।
৫। ভিডিওতে এইচটিএমএল৫ ও এইচটিএমএলএর ব্যাবহার ঃ শুধু বিনোদন নয় তথ্যপ্রযুক্তির এই যুগে ভিডিও সব ধরনের তথ্য আদান প্রদানের মাধ্যম আর এ জন্যই এইচটিএমএল ও এইচটিএমএল৫ ব্যাবহার করে ভিডিও এডিটিং ও ওয়েবে আপলোডের ক্ষেত্রে নতুন দিগন্ত উন্মোচিত হয়েছে।
৬।স্ক্রিনের বাইরেও ডেভেলপমেন্টঃ সব ধরনের প্রযুক্তিগত উৎকর্ষ সাধিত হয়েছে বর্তমান সময়ে তাই তথ্য আদান প্রদান ও গবেষণা ইত্যাদিও এখন ওয়েব ডেভেলপমেন্ট সেক্টরের মধ্যেই পরে।
৭।কুকিজ ব্যাবহারঃ আপডেট থাকতে ও নতুন কোন পরিবর্তনের সাথে মানিয়ে নিতে প্রযুক্তিকর্মীরা কুকিজ ব্যাবহার করেন।
৮। ড্রাগ এন্ড ড্রপ প্রযুক্তিঃ এইচটিএমএল৫ ব্যাবহার করে দ্রেগ এন্ড ড্রপ ব্যাবহার করে প্রযুক্তিজগতকে আরও সহজ ও সমৃদ্ধ করছে ডেভেলপাররা।
৯।রেস্পন্সিভ ডিজাইন অপরিহার্যঃ সব ধরনের যন্ত্রে ওয়েব ব্যাবহারের জন্য রেস্পন্সিভ ডিজাইন ব্যাবহার বেড়ে গেছে।
১০।মোবাইল অ্যাপ ও নেটিভ অ্যাপ ডেভেলপারদের প্রাধান্যঃপ্রযুক্তির উৎকর্ষ সাধনের সাথে সাথে মোবাইল অ্যাপ ও নেটিভ অ্যাপ ডেভেলপারদের প্রাধান্যও বেড়ে যাচ্ছে।

গুগল ম্যাপের মৌলিক ধারণা (Google Maps Basic)

গুগল ম্যাপের মৌলিক ধারণা
ইন্দ্র ভূষণ শুভ

একটি বেসিক গুগল ম্যাপ তৈরি করুন
এই উদাহরণটি ইংল্যান্ডের লন্ডন কেন্দ্রিক একটি গুগল ম্যাপ তৈরি করেঃ
উদাহরণ
DOCTYPE html>
<html>
<head>

<script>
function initialize() {
var mapProp = {
center:new google.maps.LatLng(51.508742,-0.120850),
zoom:5,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById(“googleMap”),mapProp);
}
google.maps.event.addDomListener(window, ‘load’, initialize);
</script>
</head>

<body>
googleMap” style=”width:500px;height:380px;”>
</body>

</html>
নিজে চেষ্টা করুন >>
বাকি পেইজগুলো উপরের উদাহরণটিকে ধাপে ধাপে ব্যাখ্যা করবে।

১. গুগল এপিআই লোড করুন
গুগল ম্যাপের এপিআই হলো জাভাস্ক্রিপ্টের লাইব্রেরি। এটি একটি স্ক্রিপ্ট ট্যাগ দিয়ে একটি ওয়েব পেইজ যোগ করতে পারেঃ

২. ম্যাপের বৈশিষ্ট নির্ধারণ করুন
ম্যাপটি শুরু করার জন্য একটি ফাংশন তৈরি করুনঃ
function initialize() {
}
শুরুর ফাংশনটি, ম্যাপের বৈশিষ্টগুলো বর্ণনা করার জন্য একটি লক্ষ্য (mapProp) নির্ধারণ করেঃ
var mapProp = {
center:new google.maps.LatLng(51.508742, -0.120850),
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
কেন্দ্র বৈশিষ্ট ম্যাপের কেন্দ্র নির্ধারণ করে। LatLng তৈরির উদ্দেশ্য একটি নির্দ্দিষ্ট বিন্দুতে কেন্দ্র নির্ধারণ করা। যাতে স্থানাঙ্ক অক্ষাংশ, দ্রাঘিমাংশ দিয়ে যায়।
জুমের বৈশিষ্ট ম্যাপের জুমের স্তর নির্ধারণ করে। জুমঃ০ একটি পৃথিবীর ম্যাপ দেখায় জুম ছাড়া। উচ্চ জুম স্তর উচ্চ রেজল্যুশনে জুম করে।
mapTypeId ম্যাপটি প্রদর্শনের ধরন নির্ধারণ করে।
নিম্নলিখিত ম্যাপগুলো সমর্থন করেঃ
রোডম্যাপ ( স্বাভাবিক, দ্বিমাত্রিক ম্যাপ )
স্যাটেলাইট ( ফটোগ্রাফিক ম্যাপ )
হাইব্রিড (ফটোগ্রাফিক ম্যাপ + শহর এবং রাস্তার নাম )
ভূখন্ড ( পাহাড়, নদী ইত্যাদি সম্বলিত ম্যাপ )

৩. ম্যাপের ধারক তৈরি করুন
ম্যাপ থাকে এমন একটি <div> উপাদান তৈরি করুন। CSS ব্যবহার করে উপাদানটির আকার তৈরি করুনঃ
উদাহরণ
googleMap” style=”width:500px;height:380px;”>
ম্যাপটি সবসময় এর ধারক উপাদান থেকে আকার পাবে।

৪. ম্যাপের লক্ষ্য তৈরি করুন
var map=new google.maps.Map(document.getElementById(“googleMap”), mapProp);
উপরের কোডটি

উপাদানে একটি নতুন ম্যাপ (googleMap) তৈরি করবে গৃহীত (mapProp) পরিমাপক ব্যবহার করে।

৫. ম্যাপ লোড করার একটি ইভেন্ট যোগ করুন
উইন্ডো লোডের initialize() ফাংশনকে চালাতে একটি DOM যোগ করা হয় (যখন পেইজটি লোড হয়)
google.maps.event.addDomListener(window, ‘load’, initialize);

অ্যাসিঙ্ক্রোনাস লোডিং
গুগল ম্যাপ এপিআই কে চাহিদানুযায়ী লোড করা সম্ভব।
নিচের উদাহরনটি পেইজ পুরোপুরি লোড হওয়ার পরে গুগল ম্যাপ এপআই লোড করতে window.onload ব্যবহার করেছে।
loadScript() ফাংশনটি গুগল ম্যাপ এপআই তে
উদাহরণঃ
function loadScript() {
var script = document.createElement(“script”);
script.src = “http://maps.googleapis.com/maps/api/js?callback=initialize”;
document.body.appendChild(script);
}

window.onload = loadScript;
নিজে চেষ্টা করুন >>
একাধিক ম্যাপ করুন
নিচের উদাহরনটি একই পেইজে চারটি ম্যাপ নির্ধারণ করে ( বিভিন্ন ধরনের চারটি ম্যাপ )
উদাহরণঃ
var map1 = new google.maps.Map(document.getElementById(“googleMap1”), mapProp1);
var map2 = new google.maps.Map(document.getElementById(“googleMap2”), mapProp2);
var map3 = new google.maps.Map(document.getElementById(“googleMap3”), mapProp3);
var map4 = new google.maps.Map(document.getElementById(“googleMap4″), mapProp4);
নিজে চেষ্টা করুন >>

গুগল এপিআই কী
গুগল একই দিনে কয়েক হাজারবার আপনার ওয়েবসাইটকে গুগল এপিআই তে কল করতে দিবে।
আপনি অধিক ট্রাফিকের পরিকল্পনা করলে গুগল এপিআই থেকে বিনামুল্যে কী (Key) নিতে পারেন।
বিনামুল্যে কী পেতে https://console.developers.google.com এই সাইটে যান।
যখন একটি এপিআই লোড হয়, গুগল ম্যাপ Key পরিমাপকে একটি এপিআই Key আশা করেঃ
<script src=”http://maps.googleapis.com/maps/api/js?key=YOUR_KEY”></script>

পিএইচপি – মাইএসকিউএল হতে ডাটা ডিলিট করা (PHP Delete Data From MySQL in Bangla)

Delete statement ব্যবহার করা করা হয় ডাটাবেস টেবিল থেকে কোন ডাটাকে বাদ দিয়ে দেয়ার জন্য।

এর জন্য SQL SYNTAX হল


DELETE FROM table_name
WHERE some_column = some_value


যখন আমরা where clause ব্যবহার করব না সেইখেত্রে আমাদের সব ডাটা বাদ হয়ে যাবে। যখন আমরা where ব্যবহার করব তখন নির্দিষ্ট ডাটা বাদ হয়ে যাবে।
পিএইচপি দিয়ে এর ব্যবহার বোঝার জন্য আমাদের একটি টেবিল তৈরি করতে হবে নিচের মতন

মনে করি এই টেবিল এর নাম MyGuests

id firstname lastname email reg_date
1 John Doe john@example.com 2014-10-22 14:26:15
2 Mary Moe mary@example.com 2014-10-23 10:22:30
3 Julie Dooley julie@example.com 2014-10-26 10:48:23

 

এই ক্ষেত্রে আমরা ৩ নাম্বার ডাটাটি বাদ দিতে চাই

পিএইচপি কোড


< ?php           /*আমাদের ডাটাবেসের ইউজার নাম, পাসওয়ার্ড, সার্ভার নাম সেট করতে হবে*/ 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "myDB";    //কানেকশন দিতে হবে 
$conn = new mysqli($servername, $username, $password, $dbname); 
                     // কানেকশন চেক করতে হবে ঠিক মত connect হয়েছে কিনা 
if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
}
// SQL কোড টেবিল থেকে ৩ নাম্বার ডাটা বাদ দেয়ার জন্য
$sql = "DELETE FROM MyGuests WHERE id=3";
if ($conn->query($sql) === TRUE) {
    echo "Record deleted successfully";
                   /যদি sql query ঠিকঠাক মতন হয় তাহলে সফল হয়েছে বার্তা দেখাবে/
} else {
    echo "Error deleting record: " . $conn->error;
                  /* যদি sql query ঠিকঠাক মতন না হয় তাহলে বিফল হয়েছে বার্তা দেখাবে/*/
 }
$conn->close();   /*mysqlকানেকশন বন্ধ করা হবে*/
 ?>

 

এএসপি.নেট এমভিসি – ইন্টারনেট অ্যাপ্লিকেশন . ASP.NET MVC – Internet Application

এএসপি.নেট এমভিসি – ইন্টারনেট অ্যাপ্লিকেশন
Sheikh Mahfuzur Rahman
Bangla word: 180

এএসপি.নেট এমভিসি ( ASP.NET MVC ) সম্পর্কে শিখতে গিয়ে আমরা একটি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করবো।

প্রথম পার্টঃ অ্যাপ্লিকেশনটি তৈরি করা

আমরা যা তৈরি করবো
আমরা এমন একটি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করবো যা একটি ডাটাবেজে সংরক্ষিত তথ্যের adding, editing, deleting এবং listing সাপোর্ট করে।

আমরা যা যা করবো

ভিজ্যুয়াল ওয়েব ডেভলাপার ওয়েব অ্যাপ্লিকেশন তৈরির জন্য বিভিন্ন টেমপ্লেট অফার করে। আমরা এইচটিএমএল ফাইভ ( HTML5 ) মার্কআপের মাধ্যমে একটি খালি এমভিসি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করতে ভিজ্যুয়াল ডেভলাপারকে ( Visual Web Developer ) ব্যবহার করবো।

যখন খালি ইন্টারনেট অ্যাপ্লিকেশনটি তৈরি হবে তখন আমরা ধীরে ধীরে অ্যাপ্লিকেশনটিতে কোড যোগ করবো যতক্ষণ না সেটি সম্পূর্ণভাবে শেষ হয়। প্রোগ্রামিং ল্যাঙ্গুয়েজ হিসেবে আমরা C# এবং সবচেয়ে নতুন Razor সার্ভার কোড মার্কআপ ব্যবহার করবো।

পুরো টিউটোরিয়ালটি চলার সময়ে আমরা কন্টেন্ট, কোড এবং অ্যাপ্লিকেশনের সবগুলো উপাদান ব্যাখ্যা করবো।

ওয়েব অ্যাপ্লিকেশনটি তৈরি করা

যদি আপনার কম্পিউটারে ভিজ্যুয়াল ওয়েব ডেভলাপার ইন্সটল করা থাকে, সেটি চালু করুন এবং New Project সিলেক্ট করুন। অন্যথায়, শুধু পড়ুন এবং শিখুন।

New Project ডায়ালগ বক্সেঃ
Visual C# টেমপ্লেট ওপেন করুন
ASP.NET MVC 3 Web Application টেমপ্লেটটি সিলেক্ট করুন
প্রজেক্ট এর নাম হিসেবে MvcDemo সেট করুন
ডিস্ক লোকেশন হিসেবে c:\w3schools_demo এর মতো কিছু একটা সেট করুন
OK তে ক্লিক করুন

http://bangla.salearningschool.com/aspnet/pic_mvc_new_project.jpg

যখন New Project ডায়ালগ বক্স ওপেন হয়ঃ
Internet Application টেমপ্লেট সিলেক্ট করুন
Razor Engine সিলেক্ট করুন
HTML5 Markup সিলেক্ট করুন
OK তে ক্লিক করুন

ভিজ্যুয়াল স্টুডিও এক্সপ্রেস ঠিক নিচের মতো একটি প্রজেক্ট তৈরি করবেঃ

http://bangla.salearningschool.com/aspnet/pic_mvc_explorer.jpg

 

এই টিউটোরিয়ালের পরবর্তী অধ্যায়ে আমরা ফাইল এবং ফোল্ডারের উপাদানগুলোকে নিয়ে আলোচনা করবো।

পিএইচপি – মাইএসকিউএল ডাটা আপডেট করা (PHP Update Data in MySQL)

মাইএসকিউএল-আই এবং পিডিও ব্যবহার করে মাইএসকিউএল টেবলে ডাটা আপডেট

একটি টেবলের বিদ্যমান রেকর্ডগুলো আপডেট করতে UPDATE স্টেটম্যান্ট ব্যবহৃত হয়ঃ


UPDATE table_name
SET column1=value, column2=value2,…
WHERE some_column=some_value


 

 

লক্ষ্যণীয়ঃ আপডেট সিনট্যাক্স-এর WHERE ক্লজটিকে লক্ষ্য করুনঃ কোন্‌ রেকর্ড বা রেকর্ডসমূহ আপডেট করা হবে তা WHERE ক্লজটি ঠিক করে দেয়। আপনি যদি WHERE ক্লজটিকে মুঁছে দেন তাহলে সবগুলো রেকর্ডই আপডেট হবে!

এসকিউএল সম্পর্কে আরও জানতে আমাদের এসএকিউএল টিউটর‍্যালগুলো পড়ে নিন।

এখন “MyGuests” টেবলের দিকে লক্ষ্য করুনঃ

id firstname lastname email reg_date
1 John Doe john@example.com 2014-10-22 14:26:15
2 Mary Moe mary@example.com 2014-10-23 10:22:30
3 Julie Dooley julie@example.com 2014-10-26 10:48:23

 

নিচের উদাহরণগুলো, “MyGuests” টেবলে id=2 যুক্ত রেকর্ডকে আপডেট করেঃ

উদাহরণ ( MySQLi অবজেক্ট-ওরিয়েন্টেড)


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";

if ($conn->query($sql) === TRUE) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . $conn->error;
}

$conn->close();
?>

 

উদাহরণ ( MySQLi প্রসিডুরাল)


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
 $conn = mysqli_connect($servername, $username, $password, $dbname);
 // Check connection
 if (!$conn) {
     die("Connection failed: " . mysqli_connect_error());
}

$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";
 
if (mysqli_query($conn, $sql)) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . mysqli_error($conn);
}

mysqli_close($conn);
 ?>

 

উদাহরণ (পিডিও)


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";

    // Prepare statement
    $stmt = $conn->prepare($sql);

    // execute the query
    $stmt->execute();

    // echo a message to say the UPDATE succeeded
    echo $stmt->rowCount() . " records UPDATED successfully";
    }
catch(PDOException $e)
    {
    echo $sql . "<br>" . $e->getMessage();
    }

$conn = null;
?>

 

ASP.NET MVC টিউটোরিয়াল

ASP.NET MVC টিউটোরিয়াল
লিখেছেন ইন্দ্র ভূষণ শুভ

Minor Edit by Sayed Ahmed

ASP.NET হলো HTML, CSS, JavaScript এবং server scripting দিয়ে ওয়েব পেইজ এবং ওয়েব সাইট তৈরির একটি  কাঠামো (Framework)।

ASP.NET তিনটি ভিন্ন ভিন্ন মডেল সমর্থন করেঃ
ওয়েব পেইজ, এমভিসি (Model View Controller), এবং ওয়েব ফর্ম।
এই টিউটরিয়ালটি এমভিসি (Model View Controller) নিয়ে

MVC প্রোগ্রামিং মডেল
ASP.NET প্রোগ্রামিং মডেলের মধ্যে MVC একটি।
MVC হলো MVC (Model View Controller) ডিজাইন ব্যবহার করে ওয়েব অ্যাপ্লিকেশন তৈরির একটি কাঠামো/Framework।

 

মডেলটি/Model একটি অ্যাপ্লিকেশন এর কোর উপস্থাপন করে ( উদাহরণস্বরুপ একটি ডাটাবেস থেকে রেকর্ডের তালিকা নিয়ে আসা । ডাটাবেজ এ তথ্য জমা করা এবং

ভিউ/view: তথ্য প্রদর্শন করে (মডেল থেকে ডাটা নিয়ে)
কন্ট্রোলার/controller: ব্যবহার কারি/user এর ইনপুটকে/interaction নিয়ন্ত্রণ করে

 

এছাড়াও MVC মডেল এইচটিএমএল, সিএসএস, জাভাস্ক্রিপ্টের উপর পূর্ণ নিয়ন্ত্রণ রক্ষা করে।

MVC মডেল ৩ টি যুক্তি স্তরে ওয়েব অ্যাপ্লিকেশনকে
সংজ্ঞায়িত করেঃ
The business layer (Model logic)
The display layer (View logic)
The input control (Controller logic)

মডেল হলো অ্যাপ্লিকেশনের একটি অংশ যা অ্যাপ্লিকেশন ডাটার যুক্তিকে নিয়ন্ত্রণ করে।
মডেলটি প্রায়ই ডাটাবেস থেকে তথ্য উদ্ধার করে ( এবং সংরক্ষণ করে )।
ভিউ হলো অ্যাপ্লিকেশনের একটি অংশ যা তথ্য প্রদর্শন নিয়ন্ত্রণ করে।
ভিউ প্রায়ই মডেল ডাটা থেকে তৈরি হয়।

নিয়ন্ত্রক/Controller হলো অ্যাপ্লিকেশনের একটি অংশ যা ব্যবহারকারীদের মিথষ্ক্রিয়া/Interaction নিয়ন্ত্রণ করে।
নিয়ন্ত্রক সাধারণত ভিউ থেকে তথ্য পড়ে, ব্যবহারকারীর ইনপুট নিয়ন্ত্রণ করে, মডেলে ইনপুটের তথ্য প্রেরণ করে।
MVC বিভক্তি আপনাকে জটিল অ্যাপ্লিকেশন পরিচালনা করতে সাহায্য করবে, কারণ আপনি একই সময়ে এক এক রকম দৃষ্টিভঙ্গিতে নজড় দিতে পারবেন। এছাড়াও এটি একটি অ্যাপ্লিকেশনকে সহজেই পরীক্ষা করতে পারে।
MVC বিভক্তি গ্রুপ উন্নয়নকে সহজসাধ্য কওরে। ভিন্ন ভিন্ন ব্যবহারকারী একই সাথে the view, the controller logic, এবং the business logic কে কাজ করতে পারে।

ওয়েব ফর্ম Application বনাম MVC Application
MVC প্রোগ্রামিং মডেল গতানুগতিক ASP.NET (ওয়েব ফর্ম) থেকে একটু আলাদা। এটিতে  ASP.NET এর বৈশিষ্ট্য বিদ্যমান যেমন   মাস্টার পেজ, নিরাপত্তা । কিন্তু এটি  লাইটওয়েট, এবং সহজে testable.

ভিসুয়াল স্টুডিও এক্সপ্রেস ২০১২/২০১০
ভিসুয়াল স্টুডিও এক্সপ্রেস মাইক্রোসফট ভিসুয়াল স্টুডিও একটি মুক্ত সংস্করণ।
ভিসুয়াল স্টুডিও এক্সপ্রেস MVC ( এবং ওয়েব ফর্ম ) এর জন্য উন্নয়নের দক্ষ হাতিয়ার।

ভিসুয়াল স্টুডিও এক্সপ্রেসে রয়েছেঃ
MVC এবং ওয়েব ফর্ম
ওয়েব নিয়ন্ত্রণের ড্রাগ- এবং- ড্রপ এবং ওয়েব উপাদান
ওয়েব সার্ভারের ভাষা (Razor using VB or C# )
ওয়েব সার্ভার (IIS Express)
ডাটাবেস সার্ভার (SQL Server Compact)
পরিপূর্ণ ওয়েব উন্নয়ন কাঠামো (ASP.NET)

আপনি যদি ভিসুয়াল স্টুডিও এক্সপ্রেস ইন্সটল করেন, আপনি এই টিউটরিয়াল থেকে আরও লাভ পেতে পারেন।
আপনি যদি ভিসুয়াল স্টুডিও এক্সপ্রেস ইন্সটল করতে চান, এই লিঙ্কগুলোতে ক্লিক করেনঃ
Visual Web Developer 2012 ( আপনার যদি Windows 7 বা Windows 8 থেকে থাকে )
Visual Web Developer 2010 (Windows Vista অথবা XP জন্য )

ASP.NET MVC তথ্যসূত্র
এই টিউটরিয়ালটি শেষে আপনি ASP.NET MVC সম্পর্কে একটি পরিপুর্ণ তথ্য পাবেন।

 

এস ই ও এর জন্য বিশেষজ্ঞ নিয়োগ । SEO – Hiring an Expert

নয়ন চন্দ্র সরকার

 

এস ই ও এর বিভিন্ন অংশের কাজ এবং ওয়েব সাইট এর গুনাগুন নিশ্চিত করতে প্রয়োজন হয় একজন সুদক্ষ বা অভিজ্ঞ লোকের। যে কাজগুলো আমরা করবে পারি না বা সর্বোত্তম ভাবে সম্পাদান করতে পারি না, সেগুলোর জন্যই একজন অভিজ্ঞ লোক নিয়োগের প্রয়োজন পরে। কারন, এস ই ও এর উপরই আপনার ওয়েব সাইট এর ভবিষ্যৎ অনেকটা নির্ভর করে।

যে কাজগুলোর জন্য এস ই ও বিশেষজ্ঞ নিয়োগ করা যেতে পারে

  1. কোড এর বৈধতা নিশ্চিতকরণ এবং এর সার্বিক গুনাগুন অটুট রাখতে, এবং কোড যেন সার্চ ইঞ্জিন-সুলভ ইত্যাদি বিষয়ের জন্য বিশেষজ্ঞ নিয়োগের প্রয়োজন হয়।
  2. এস ই ওর অন পেজ অপটিমাইজেসন যেমন, পেজ টাইটেল, কল টু অ্যাকশান কপি রাইটিং ইত্যাদি কাজের জন্য।
  3. প্রাসঙ্গিক সাইটগুলোর সাথে ভাল মানের লিঙ্ক বিল্ডিং নিশ্চিতকরণ।
  4. ওয়েব সাইট এর বিষয়বস্তুর উপর ভিজিটরের আগমন নির্ভর করে। আর একজন এস ই ও বিশেষজ্ঞ এই বিষয়টি নিশ্চিত করেন।
  5. অফ পেজ অপটিমাইজেসন এর বিভিন্ন কাজ যেমন, আর্টিকেল সাবমিশন, ব্লগের ব্যবহার, লিঙ্ক বিল্ডিং, ডিরেক্টরি সাবমিশন ইত্যাদি কাজের জন্য একজন এস ই ও বিশেষজ্ঞ প্রয়োজন।

পরিশেষে বলা যায় যে, আপনি যদি নিজেই এর কাজগুলো করতে পারেন তাহলে বিশেষজ্ঞ নিয়োগের কোন প্রয়োজন নেই।

কিভাবে এস ই ও বিশেষজ্ঞ বাছাই করবেন

একটি ওয়েব সাইট এর জন্য ভাল মানের এস ই ও বিশেষজ্ঞ নিয়োগ বা বাছাই করা সত্যিই কঠিন কাজ। তবে নিম্নোক্ত পন্থাগুলো অবলম্বন করলে টা অনেকাংশে সহজ হয়। এমন কিছু পদ্ধতি হল,

  1. আপনি আপনার বন্ধু বা পরিচিত কারোর মাধ্যমে খোঁজ করতে পারেন।
  2. এস ই ও সম্পর্কিত অনেক ফোরাম আছে যেগুলোতে আপনি এ সম্পর্কে ফিডব্যাক পেতে পারেন।
  3. উনি সাম্প্রতিকালে যেসব ওয়েব সাইট এ কাজ করেছেন সেগুলোর খোঁজ-খবর রাখতে পারে।
  4. এস ই ও কোম্পানি গুলোকে অটোমেটিক কাজ করা হতে বিরত রাখবেন।
  5. সস্তা এস ই ও বিশেষজ্ঞ নিয়োগ করবেন না। তবে ভাল দক্ষতা থাকলে ভেবে দেখতে পারেন।
  6. আর্টিকেল বা ওয়েবসাইট এর বিষয়বস্তুর উপর ভিত্তি করে কোন এস ই ও কোম্পানি কে নিয়োগ দেবেন না।
  7. ওদের ওয়েব সাইট এ প্রসংশা পত্রের প্রাচুর্যটা দেখে কখনই মুগ্ধ হবেন না।

এই বিষয় গুলো মাথাই রাখলেই আপনি একজন ভাল মানের এস ই ও অভিজ্ঞ লোক বা প্রতিষ্ঠানের সন্ধান পেতে পারেন।

পিএইচপি – মাইএসকিউএল থেকে ডাটা সিলেকশন নির্দিষ্ট করা (PHP Limit Data Selections From MySQL in Bangla)

MYSQL এর LIMIT প্যারামিটার ব্যবহার করে নির্দিষ্ট সংখ্যক রো পাওয়া যায়।

অনেকগুলো পেজ এ ফলাফল ডিসপ্লে করতে অথবা pagination এর ক্ষেত্রে LIMIT প্যারামিটার টা খুব সহজ।

অনেক বড় টেবিল এর জন্য এটা খুব উপকারী।

মনে করি আমরা একটি order নামক টেবিল থেকে প্রথম ৩০ টা ডাটা দেখতে চাই তার জন্য SQL query টি হবে


$sql = "SELECT * FROM Orders LIMIT 30";

যখন এটি রান করা হবে তখন প্রথম ৩০ টি ডাটা দেখা যাবে। যদি আমরা ১৬-২৫ এই রেকর্ড দেখতে চাই


$sql = "SELECT * FROM Orders LIMIT 10 OFFSET 15";

উপড়ের query টি OFFSET 15 সেট করার ফলে আমরা ১৫ এর পরের থেকে ১০ টি ডাটা দেখতে পারব। আমরা এর পরিবর্তে আরও একটি query চালাতে পারি যা এক ফলাফল পাওয়া যাবে


$sql = "SELECT * FROM Orders LIMIT 15, 10";

লক্ষ্য করার বিষয় নাম্বারগুলো এখন উলটো যখন কমা ব্যবহার করা হয়।

পিএইচপি – এক্সএমএল পার্সার (PHP XML Parsers)

এক্সএমএল কি?

এক্সএমএল ল্যাঙ্গুয়েজ হলো ডাটা বা তথ্যকে স্ট্রাকচার করার একটি পদ্ধতি যা ওয়েবসাইটগুলোতে তথ্য শেয়ার করার জন্য ব্যবহৃত হয়ে থাকে। আরএসএস ফিড এবং পডকাস্টের মতো অনেক ধরণের ওয়েব টেকনোলজি এক্সএমএল দিয়ে লেখা হয়। এক্সএমএল তৈরি করা সহজ। এটি অনেকটাই এইচটিএমএল এর মতো, পার্থক্য হলো এখানে আপনি নিজেই ট্যাগ তৈরি করেন; এইচটিএমএল এর ট্যাগগুলো ডব্লিওথ্রিসি’র নীতিমালা অনুসারে তৈরি হয়েছে। এক্সএমএল সম্পর্কে আরও জানতে আপনি আমাদের এক্সএমএল টিউটরিয়ালগুলো পড়ে দেখতে পারেন।

এক্সএমএল পার্সার কি?

একটি এক্সএমএল ডকুমেন্টকে পড়তে, আপডেট করতে, তৈরি এবং ম্যান্যুপিউলেট করতে একটি এক্সএমএল পার্সারের দরকার পড়ে। পিএইচপি’তে প্রধানত দুই ধরণের এক্সএমএল পার্সার রয়েছেঃ

১) ট্রি-বেজড পার্সার
২) ইভেন্ট-বেজড পার্সার

ট্রি-বেজড পার্সার

ট্রি-বেজড বা ট্রি নির্ভর পার্সার পুরো ডকুমেন্টকে মেমোরিতে ধারণ করে এবং এক্সএমএল ডকুমেন্টটিকে একটি ট্রি স্ট্রাকচারে রয়পান্তরিত করে। এটি পুরো ডকুমেন্টটিকে বিশ্লেষণ করে এবং ট্রি এলিমেন্টে (DOM) প্রবেশ (access) করতে দেয়।

একটি ক্ষুদ্রতর এক্সএমএল ডকুমেন্টের জন্য এই ধরণের পার্সার তুলনামূলকভাবে ভালো অপশান হয়ে থাকে, কিন্তু বড় এক্সএমএল ডকুমেন্টের ক্ষেত্রে পার্ফমেন্স (ধীর গতিতে পার্সা করে) ভালো হয়না বলে সেক্ষেত্রে এই ধরণের পার্সার ব্যবহার করা হয়না।

ট্রি-বেজড পার্সারের উদাহরণঃ

  • SimpleXML
  • DOM

ইভেন্ট-বেজড পার্সার

ইভেন্ট-বেজড বা ইভেন্ট নির্ভর পার্সার পুরো ডকুমেন্টকে মেমোরিতে ধারণ করেনা, তার পরিবর্তে, সেগুলো একবারে শুধু একটি নোডকে পড়ে এবং আপনাকে রিয়েল টাইমে ( যে সময়টিতে আপনি ডকুমেন্টটি নিয়ে কাজ করছেন) ডকুমেন্টের ঐ নোডটি’র সাথে ইন্টারেক্ট করতে দেয়। একবার আপনি পরবর্তী নোডে চলে গেলে পূর্বের নোডটি ফেলে দেয়া হয় মেমোরি থেকে।

বড় এক্সএমএল ডকুমেন্টের জন্য এই ধরণের পার্সার খুবই কার্যকর। এটি খুব দ্রুততর গতিতে পার্স করে এবং কম মেমোরি দখল করে।

ইভেন্ট বেজড পার্সারের উদাহরণঃ

  • XMLReader
  • XML Expat Parser

পিএইচপি ৫ সরটিং অ্যারে (PHP 5 Sorting Arrays)

আক্তারুজ্জামান

Department of CSE, University of Chittagong

 

একটি অ্যারের ইলিমেন্টগূলো বর্ণানুক্রমিক (alphabetical) অথবা সংখ্যাসূচক (numerical) ক্রম অনুসারে সাজানো যায়। এই সাজানোটা ascending (ঊর্ধ্বগামী) অথবা descending (অধোগামী) উভয় প্রকারের হতে পারে।

পিএইচপি তে অ্যারে সাজানোর বা sort করার জন্য যে সব ফাংশন ব্যাবহার করা হয় ঐগুলো নিচে দেওয়া হলঃ

 

পিএইচপি অ্যারে ফাংশন সর্ট করা

  • sort() – এই ফাংশনটি একটি অ্যারেকে ascending order (ছোট থেকে বড় ক্রম) এ sort করে।
  • rsort() – এই ফাংশনটি একটি অ্যারেকে descending order (বড় থেকে ছোট ক্রম) এ sort করে।
  • asort() – এটি অ্যাসোসিয়েটিভ অ্যারেকে মান অনুসারে ascending order এ sort করে বা সাজায়।
  • ksort() – এটি অ্যাসোসিয়েটিভ অ্যারেকে key অনুসারে ascending order এ sort করে বা সাজায়।
  • arsort() – এটি অ্যাসোসিয়েটিভ অ্যারেকে মান অনুসারে descending order এ sort করে বা সাজায়।
  • krsort() – এটি অ্যাসোসিয়েটিভ অ্যারেকে key অনুসারে descending order এ sort করে বা সাজায়।

 

অ্যারেকে ছোট থেকে বড় ক্রমে সাজানো – sort()

নিচের উদাহরণটি $cars নামের একটি array কে ছোট থেকে বড়তে বর্ণানুক্রমিক (alphabetical) ক্রম অনুসারে সাজায়।


<?php
 $cars = array("Volvo", "BMW", "Toyota");
 sort($cars);
 ?>

 

নিচের উদাহরণটি $numbers নামের একটি array কে ছোট থেকে বড়তে সংখ্যাসূচক (numerical) ক্রম অনুসারে সাজায়।


< ?php
 $numbers = array(4, 6, 2, 22, 11);
 sort($numbers);
 ?>

 

অ্যারেকে বড় থেকে ছোট ক্রমে সাজানো – rsort()

নিচের উদাহরণটি $cars নামের একটি array কে বড় থেকে ছোটতে বর্ণানুক্রমিক (alphabetical) ক্রম অনুসারে সাজায়।


<?php
 $cars = array("Volvo", "BMW", "Toyota");
 rsort($cars);
 ?>

 

নিচের উদাহরণটি $numbers নামের একটি array কে বড় থেকে ছোটতে সংখ্যাসূচক (numerical) ক্রম অনুসারে সাজায়।


< ?php
 $numbers = array(4, 6, 2, 22, 11);
 rsort($numbers);
 ?>

 

অ্যারেকে ছোট থেকে বড় ক্রমে সাজানো (মান অনুসারে) – asort()

নিচের উদাহরণটি $age নামের একটি associative array কে ছোট থেকে বড়তে মান অনুসারে সাজায়।


< ?php
 $age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
 asort($age);
 ?>

 

অ্যারেকে ছোট থেকে বড় ক্রমে সাজানো (key অনুসারে) – ksort()

নিচের উদাহরণটি $age নামের একটি associative array কে ছোট থেকে বড়তে key অনুসারে সাজায়।


< ?php
 $age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
 ksort($age);
 ?>

 

অ্যারেকে বড় থেকে ছোট ক্রমে সাজানো (মান অনুসারে) – arsort()

নিচের উদাহরণটি $age নামের একটি associative array কে বড় থেকে ছোটতে মান অনুসারে সাজায়।


< ?php
 $age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
 arsort($age);
 ?>

 

অ্যারেকে বড় থেকে ছোট ক্রমে সাজানো (key অনুসারে) – krsort()

নিচের উদাহরণটি $age নামের একটি associative array কে বড় থেকে ছোটতে key অনুসারে সাজায়।


< ?php
 $age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
 krsort($age);
 ?>