ডিএনএন ৭.৩ ডেভলপার কুইক স্টার্ট

রিদওয়ান বিন শামীম

 

ডিএনএন ৭.৩ ডেভলপার কুইক স্টার্ট পেজ এমন রিসোর্স হিসেবে ব্যবহৃত হয় যা কিনা ডিএনএন এক্সটেনশন ডেভলপারদের সর্বশেষ সংস্করণের (ডিএনএন ৭.৩.০) সুবিধাদি পেতে সাহায্য করে।

 

প্লাটফর্মের পারফর্মেন্স বৃদ্ধি পাওয়া

ব্রুস চ্যাপম্যানের ব্লগ (http://www.dnnsoftware.com/blog/evoq-content-73-speed-and-performance/evoq-content-7-3-speed-and-performance) ডিএনএন ৭.৩.০তে পারফর্মেন্স বৃদ্ধির উপর অনেক কাজ করেছে। যদিও পারফর্মেন্স বৃদ্ধি সবসময়ই ভাল তবুও এটি সাধারণত স্বয়ংক্রিয়ভাবেই হয়ে থাকে, ডেভলপারকে এটি নিয়ে খুব একটা চিন্তা করতে হয় না। যাই হোক, আমাদের পরামর্শ হল মডিউল ডেভলপারদের উচিৎ ডিএনএন ৭.৩.০ এর প্রেক্ষিতে তাদের কোড পর্যবেক্ষণ করে নেয়া, যাতে ভুলক্রমেও কোনও সাব অপটিমাল প্লাটফর্ম কোডের উপর নির্ভর করে না থাকেন।

যদি কোনও মডিউল ডেভলপার জেকোয়েরি এপিআই ব্যবহারের পরিবর্তে ক্রুটিপূর্ণ রেজিস্ট্রেশনের উপর নির্ভর করে থাকে, তাহলে সেই মডিউল কাঙ্খিত ফলাফল নাও দিতে পারে। এধরনের ভুল সংশোধনের জন্য প্রয়োজনীয় স্ক্রিপ্ট রেজিস্ট্রেশনের জন্য জেকোয়েরি এপিআই ব্যবহার করা যেতে পারে।

 

ডিএনএনপ্যানেলস বৃদ্ধি

Vicenç Masanas এর কোড কন্ট্রিবিউশন এর মাধ্যমে ডিএনএনপ্যানেলস জেকোয়েরি প্লাগিন সমৃদ্ধ হয়েছে। বর্তমানে এটি

  • চ্যানেলের ইনিশিয়াল স্ট্যাটাস সেটিংএ সাহায্য করে,
  • কুকিজের স্ট্যাটাস সেটিং ডিজেবলের অপশন সাপোর্ট করে,
  • প্রয়োজনে ব্যবহারের জন্য expand() ও collapse() পদ্ধতি প্রয়োগের সুবিধা দেয়।

 

স্কিন প্যান হিসেবে এইচটিএমএল৫

স্কিনার ইঞ্জিনকে হিডার, ফুটার, মেইন, আর্টিকেল ও সংশ্লিষ্ট এইচটিএমএল৫ ট্যাগকে স্কিন প্যানের ভ্যালিড ট্যাগ হিসেবে ব্যবহারের ক্ষেত্রে সহায়তার উপযুক্ত করে পরিবর্ধিত করা হয়।পূর্বে কেবল div, p, ও td ট্যাগগুলোকে স্কিনে প্যান হিসেবে থাকত।

 

পোর্টাল লেভেল এসএমটিপি

পোর্টাল লেভেল এসএমটিপির জন্য সাপোর্ট সংযুক্ত হয়েছে Oliver Hine এর অবদানে। এই নতুন সক্ষমতার সাথে তাল মিলিয়ে কাজ করার জন্য এপিআইকে আপডেট করা হয়েছে।

 

ডিসপ্লে এডভারটাইজিং সাপোর্টের জন্য গুগল এনালাইটিক্স ট্র্যাকিং কোডকে সাপোর্ট করাঃ Will Strohl added নতুন display analytics Demographics and Interest reportsকে সাপোর্ট করে।

 

সেটিং/ কন্টেন্ট সহ সেভ/ রিস্টোর মডিউল

Torsten Weggenঅবদান রেখেছেন সেই সমৃদ্ধিতে, যা কিনা নিশ্চিত করে মডিউলের “settings”ও “content”এক্সপোর্টেড ও ইম্পোরটেড ।

 

ডিডিআর মেন্যু সল্যুশনের সাথে সংযুক্ত

Mark Allan (DDRMenu এর আবিস্কারক ও প্রধান ডেভলপার)এঁর সাথে আলোচনা করে আমরা সল্যুশনে সর্বশেষ ডিডিআর মেন্যু সংযোজন করেছি। এটি যেমন সহজ ডিবাগিংএর জন্য উপযোগী তেমনি Github এর মাধ্যমে বাগ স্থাপনও পরিবর্তন সাধনের ক্ষেত্রেও ব্যবহারকারীদের সুবিধা দেবে। Oliver Hine and Brian Dukes এঁরা ডিডিআর মেন্যুতে পরিবর্তন ও পরিবর্ধনের ক্ষেত্রে বিশেষ অবদান রেখেছেন।

এপিআই ক্লিনআপঃ ক্লিনআপের অন্তর্ভুক্ত বিষয় হল,

  • TestableXXXController থেকে XXXController class এ কপি মেথড।
  • নিশ্চিত করা যে XXXController, ServiceLocator প্যাটার্ন ব্যবহার করেছে।
  • নিশ্চিত করা যে সকল মেথড IXXXController ইন্টারফেসে এক্সট্র্যাক্ট করা হয়েছে
  • TestableXXXXontroller এর সকল ব্যবহারকে XXXController দ্বারা প্রতিস্থাপিত করা
  • TestableXXXController ক্লাসকে অপ্রচলিত রাখা

 

Log4Net ডায়গনোস্টিক বৈশিষ্ট্য

বিদ্যমান log4net সক্ষমতাকে পরিবর্ধন করা হয়েছে জটিল বিষয় সমাধানের “processid” and “appdomain”কে সাপোর্ট দেয়ার জন্য।

ডাইনামিক ইনভোকেশন সাপোর্ট করার জন্য dnnConfirm বৃদ্ধি করা

পূর্বে থাকা dnnConfirm জেকোয়েরি প্লাগিন পরিবর্ধন করা হয়েছে, এখন এটি যেসব বিষয় সাপোর্ট করে তা হল,

$.dnnConfirm(); //only show the confirm box with default content;

$.dnnConfirm({actionUrl:’http://www.dnnsoftware.com’}); //will redirect to dnn site if click yes button;

$.dnnConfirm({text: ‘Hello World’}); //show custom text;

$.dnnConfirm({callbackTrue: function(){alert(‘click yes button’);}}); //show the alert when click yes button.

 

আপডেট করা সাইট টেম্পলেটঃ

ডিফল্ট সাইট টেম্পলেট কিছু আপডেট করার মাধ্যমে উন্নত করা হয়েছে, যা এই সাইটগুলো থেকে আমরা জানতে পারব, https://dnntracker.atlassian.net/browse/DNN-5127

https://dnntracker.atlassian.net/browse/DNN-5219

 

51 Degrees

ডিভাইস সনাক্তকরণ বাই ডিফল্ট হবে নাঃ ৭.৩ভার্সনের ৫১ ডিগ্রিজ পূর্বের সংস্করণের চেয়ে অনেকগুন দ্রুত ও ছোট।

 

ওয়েব ডিজাইনার নির্বাচনে গুরুত্বপূর্ণ ৫ টি টিপস । Five tips to select a web designer

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

আপনার জন্য উপযুক্ত ওয়েব ডিজাইনার কে হবেন, কীভাবে বেছে নেবেন একজন দক্ষ ডিজাইনার- তা জানতে দেখে দিন নিচের টিপসঃ

(১) আপনি কী চান, এবং কী চান না তা আগে ঠিক করুন

ওয়েব ডিজাইনার খোঁজ করার আগে ভালো করে জেনে নিন- আসলে আপনি কী চান আপনার ওয়েব সাইট নিয়ে, কী আপনার লক্ষ্য। আপনি অত্যাধুনিক উচ্চমানের ট্রেন্ডি ও ভিজুয়াল সাইট চান? নাকি আপনি ট্রাডিশনাল ও গতানুগতিক একটি ওয়েব সাইট চান? আপনি কি এমন কন্টেন্ট যোগ করতে চান যা প্রতিনিয়ত সম্পাদনা বা আপডেট দরকার হবে? নাকি কালেভদ্রে ডেভেলপারকে দিয়ে করালেই চলবে? এই প্রশ্নগুলোর উত্তর আপনার ওয়েব সাইট ডিজাইনার নির্বাচনে ভূমিকা রাখবে।

(২) ডিজাইনারের পোর্টফলিও ও আগের কাজ দেখে নিন

ওয়েব ডিজাইনারের রুচিবোধ, দক্ষতা ও পেশাদারিত্ব বুঝতে তার প্রোফাইল ও পূর্বের কাজ দেখে নিতে হবে আপনার। এতে সহজেই আপনার পছন্দের সাথে একটা তুলনামূলক চিত্র আপনি পেয়ে যাবেন, যা সিদ্ধান্ত নিতে অনেক সহায়ক হবে।

(৩) বাস্তবভিত্তিক বাজেট ঠিক করুন

ওয়েব সাইটের ডিজাইন খরচ নির্ভর করবে আপনার প্রজেক্টের প্রয়োজনের ওপর। আর প্রজেক্টের প্রয়োজনীয়তা ঠিক করে দেবে ওয়েব সাইটটি কতোটা জটিল ফর্মেটের হবে, কতো পৃষ্ঠার হবে এবং বিশেষ কোনো ফাংশন যোগ করতে হবে কি না। এসবই আপনার বাজেট নির্ধারণে পয়েন্ট হিসেবে কাজ করবে।

(৪) ঠিক সময়ে কাজ শেষ করার নিশ্চয়তা জেনে নিন

ওয়েব ডিজাইনার কে কাজ দেবার আগে ভালো করে জেনে নিন যে সে নির্ধারিত সময়ে আপনার কাজ শেষ করে দিতে পারবে কি না। এই প্রশ্নটা সরাসরি করুনঃ “আপনি কি আমার প্রজেক্ট, আমার দেয়া সময়ে করে দিতে পারবেন?” আরো আলোচনা করে নিন – কাজের সুযোগগুলো (Scope of work) এবং কতোটা পরিবর্তনের অনুরোধ (Change Requests) আপনি করতে পারবেন।

(৫) ঠিক করে নিন ডিজাইন ও কন্টেন্ট স্বত্ব বিষয়টি

আপনার ওয়েব সাইটের জন্য ডিজাইনার বেছে নেবার আগেই নিশ্চিত করে নিন- ডিজাইন ও কন্টেন্ট স্বত্ব (property rights) কার হবে, কীভাবে হবে? এ ব্যাপারে লিখিত দলিল করে নিন। পরবর্তীতে যে কোনো জটিলতা এড়াতে এ বিষয়টি অনেক গুরুত্বপূর্ণ।

 

ডিএনএন ৭.২ ডেভলপার কুইক স্টার্ট

রিদওয়ান বিন শামীম

 

ডিএনএন ৭.২ ডেভলপার কুইক স্টার্ট পেজ এমন রিসোর্স হিসেবে ব্যবহৃত হয় যা কিনা ডিএনএন এক্সটেনশন ডেভলপারদের ডিএনএন ৭.২.০ এর সর্বশেষ সুবিধাদি পেতে সাহায্য করে।

 

ম্যাসেজিং ডিসপ্যাচ সিডিউলার

এই সিডিউলার টাস্ক ইউজারদের সেইসব ম্যাসেজ এবং নোটিফিকেশন সম্পর্কে মনে করিয়ে দেয় যাদের পড়া হয়নি। এখন, নতুন ভার্সনে আমরা এই সিডিউলারকে আরও বেশি কাস্টমাইজেবল ও লোকালাইজড করার মত করে পরিমার্জিত করেছি। এবিষয়ে আরও জানতে এখানে দেখা যেতে পারে, http://www.dnnsoftware.com/wiki/message-dispatch-scheduler

 

সাবস্ক্রিপশন এপিআই

সাবস্ক্রিপশন এপিআই খুব সরল ধরনের এপিআই যা ব্যবহারকারীদের কিছু নির্দিষ্ট উপাদান ও কনসেপ্ট সাবস্ক্রাইব বা আনসাবস্ক্রাইব করার সুবিধা দিয়ে থাকে। আরও জানতে দেখতে পারেন এখানে, http://www.dnnsoftware.com/wiki/subscription-api

 

জাভাস্ক্রিপ্ট লাইব্রেরী

জাভাস্ক্রিপ্ট লাইব্রেরী একটি নতুন এক্সটেনশন টাইপ, যা জাভাস্ক্রিপ্ট ফাইলকে প্যাকেজ করে। লাইব্রেরী এক্সটেনশনকে ডুপ্লিকেট স্ক্রিপ্ট ও ভার্সন কনফ্লিক্ট এড়িয়ে একটি সিঙ্গেল জাভাস্ক্রিপ্ট লাইব্রেরীতে রেফারেন্স করার সুবিধা দেয়। জাভাস্ক্রিপ্ট লাইব্রেরী সম্পর্কে আরও জানতে দেখা যেতে পারে, http://www.dnnsoftware.com/wiki/javascript-libraries

বয়স্কদের জন্য নতুন সামাজিক যোগাযোগ মাধ্যম স্টিচ (Stitch) . Stitch a new Social Media for Seniors (50+)

 

স্টিচ (Stitch) একটি ব্যতিক্রমধর্মী টেকনোলোজি প্লাটফর্ম, যা সামাজিক বিচ্ছিন্নতা ও একাকীত্ব দূর করার প্রয়াসে সামাজিক যোগাযোগ মাধ্যম হিসেবে কাজ করছে। স্টিচ (Stitch) ব্যতিক্রমধর্মী এজন্য যে, এটি শুধু বয়স্কদের লক্ষ্য করে কাজ করছে। যাদের বয়স ৫০ বা বেশি তাদের জন্য ফেসবুকের আদলে স্টিচকে ডেভেলপ করা হয়েছে। অস্ট্রেলিয়াভিত্তিক সারা বিশ্বের সিনিয়র সিটিজেনদের জন্য গড়ে ওঠা প্রতিষ্ঠানটি সম্প্রতি টিসি রেডিও পীচ অফ কন্টেস্ট (TC Radio Pitch-Off) বিজয়ী হয়েছে। সামাজিক যোগাযোগের এ মাধ্যমটি বন্ধুত্ব, রোমান্টিসিজম, সহযোগী বা শুভাকাঙ্ক্ষী বেঁছে নেয়ার সুযোগ করে দিচ্ছে।

 

স্টিচ (Stitch) এর সহ-প্রতিষ্ঠাতা Marcie Rogo বলেন, “অনেক পরিণত বয়স্ক আছেন, যাঁদের অনেককিছু বলার থাকে, তারা অনেক কিছু করতে চান; কিন্তু কেউ সেদিকে ভ্রুক্ষেপ করে না। তাঁদের কথা শোনে না। স্টিচ (Stitch) তাদের এই প্রয়োজনকে মিটাচ্ছে অনন্য ও যুগোপযোগী সামাজিক যোগাযোগ বন্ধনের মাধ্যমে। সমমনা মানুষের সাথে বন্ধুত্ব, কথা বলা এমনকি বেড়াতে যাওয়াসহ দলীয় কর্মকাণ্ডে (Group Activities) অংশগ্রহণ করার মতো সুযোগ করে দিচ্ছে স্টিচ (Stitch)।

 

অন্যান্য সামাজিক যোগাযোগ মাধ্যম থেকে স্টিচ একটু আলাদা। স্টিচের সদস্যগণ এখানে গ্রুপ ইভেন্ট তৈরি করতে পারেন। যেমন – কোনো পানীয় পার্টি বা ট্রিভিয়া নাইট ইত্যাদি। স্টিচে এখন ২০,০০০ এর অধিক সক্রিয় সদস্য আছেন। আর আছে ৫০ এর অধিক সক্রিয় স্টিচ কমিউনিটি।

 

ফ্রি ব্যবহার করা যায় স্টিচ। তবে প্রিমিয়াম (Premium Tier) সদস্য হতে বার্ষিক ৬০ ডলার করে দিতে হয়। প্রিমিয়াম মেম্বারগণ কিছু বাড়তি সুবিধা পেয়ে থাকেন; যেমন- আনলিমিটেড প্রোফাইল দেখা, প্রোফাইলকে বোস্ট করে অন্যদের নজরে আনা, সদস্যদের মাঝে ফোন করার সুবিধা ইত্যাদি। কোম্পানিটি জানিয়েছে, প্রায় ১০ ভাগ সদস্য ইতিমধ্যে প্রিমিয়াম মেম্বারশীপ নিয়েছেন।

 

আরো মজার বিষয় হলো- স্টিচ (Stitch) ফোন কলভিত্তিক কাস্টমার সার্ভিস এর ব্যবস্থা রেখেছে। এখানে স্টিচ ব্যবহারকারীগণ প্রয়োজনে ফোন করে সত্যিকার রক্ত মাংসের মানুষের সাথে কথা বলে সমাধান নিতে পারেন। বয়স্ক মানুষ; যারা ফোন নস্টালজিয়ায় ভোগেন, তাঁদের জন্য এটা একটা দারুণ প্রয়াস।

স্টিচঃ http://www.stitch.net/

http://techcrunch.com/2015/10/31/stitch-is-a-social-network-for-seniors/

ডটনেট নিউক ৭.১ ডেভলপার কুইক স্টার্ট

রিদওয়ান বিন শামীম

 

ডিএনএন ৭.১ ডেভলপার কুইক স্টার্ট পেজ এমন রিসোর্স হিসেবে ব্যবহৃত হয় যা কিনা ডিএনএন এক্সটেনশন ডেভলপারদের ডিএনএন ৭.১.০ এর সর্বশেষ সুবিধাদি পেতে সাহায্য করে।

 

এডভান্সড ইউআরএল ম্যানেজমেন্ট

ফ্রেন্ডলি ইউআরএল প্রভাইডারের জন্য ডিএনএন ৭.১ একটি নতুন মোড সংযোজন করেছে। এটি এডভান্সড মোড হিসেবে পরিচিত আর এটি ইউআরএলের আচরণ ও ফিচারও পরিবর্তন করে ফেলে।

এডভান্সড ইউআরএল ম্যানেজমেন্ট নতুন ডিএনএন ৭.১ বা আরও আধুনিক সংস্করণগুলোর জন্য ইন্সটলেশনে বাই ডিফল্ট থাকে, কিন্তু বর্তমানে চালু থাকা সংস্করণগুলোয় এটি বাই ডিফল্ট থাকে না। এডভান্সড ইউআরএল ম্যানেজমেন্টের কিছু নির্দিষ্ট টপিকস আছে, যা এখান থেকে দেখে নেয়া যেতে পারে,

 

 

এডভান্সড ইউআরএলের জন্য আইআইএস ৭ রিকোয়ারমেন্ট

এডভান্সড ইউআরএল প্রভাইডার ব্যবহারের সময় সম্ভাব্য ক্রুটি এড়াতে

আইআইএস ৭এর একটা হটফিক্স দরকার (এবিষয়ে বিস্তারিত দেখুন, https://support.microsoft.com/en-us/kb/980368) বিশেষ করে এক্সটেনশনবিহীন ইউআরএলকে সাপোর্ট দেয়ার জন্য।

 

মেম্বারশিপ সিকিউরিটি এনহেন্সমেন্ট

ডিএনএন ৭.১.০ রিলিজের একটি বড় কারণ ছিল মেম্বারশিপ ও পাসওয়ার্ড সিকিউরিটির ক্ষেত্রে কিছু সংস্কার সাধন। এর অন্তর্ভুক্ত বিষয়গুলো হল,

 

এজিউর কম্পেটিবেলিটি চেক

ডিএনএন ৭.১.০ সনাক্ত করে কখন এটি এসকিউএল এজিউর ডাটাবেসে রান করে আর কখন নতুন এক্সটেনশন ইন্সটল করে, <azureCompatible> নামের মেনিফেস্ট ফাইল ইলিমেন্ট সন্ধান করে। যদি না পাওয়া যায় তবে যিনি এক্সটেনশন ইন্সটল করছেন তাঁকে একটি ওয়ার্নিং দেয়া হয়।এবিষয়ে আরও জানতে পারবেন এখানে, http://www.dnnsoftware.com/wiki/azure-compatible-extension-check

 

জেকোয়েরি ১.৯.১

ডিএনএন ৭.১ এখন জেকোয়েরি ১.৯.১ এর সাথে সমন্বয় করেছে, একারনে প্রথমে আমাদের স্কিন ও এক্সটেনশন টেস্ট করে নিতে হবে। জেকোয়েরি ১.৯.১ আপগ্রেডের জন্য এখানে দেখা যেতে পারে, http://jquery.com/upgrade-guide/1.9/

জেকোয়েরি ১.৯তে অনেক বড় ধরনের পরিবর্তন হয়েছে, ডিএনএন জেকোয়েরি মাইগ্রেট প্লাগিনও অন্তর্ভুক্ত করেছে,যা এখান থেকে পাওয়া যাবে, https://github.com/jquery/jquery-migrate/

 

ফাইল ম্যানেজমেন্টঃ সার্চ রিডিজাইনড

ডিএনএন ৭.১ এর আরও কিছু সোর্স দেখতে পারেন

 

ল্যাঙ্গুয়েজের ইম্প্রুভড ম্যানেজমেন্ট

নির্দিষ্ট পেজসমূহ (কন্টেন্ট লোকালাইজেশন)

এর প্রাসঙ্গিক কিছু ব্লগের ঠিকানা দেয়া হল,

 

ডটনেট নিউক ৬.২ ডেভলপার কুইক স্টার্ট

রিদওয়ান বিন শামীম

 

ডিএনএন ৬.২ ডেভলপার কুইক স্টার্ট পেজ এমন রিসোর্স হিসেবে ব্যবহৃত হয় যা কিনা ডিএনএন এক্সটেনশন ডেভলপারদের ডিএনএন ৬.২ এর সর্বশেষ সুবিধাদি পেতে সাহায্য করে। যদি কেউ ডট নেটের স্কিন অবজেক্ট, মডিউল বা প্রভাইডার ডেভলাপমেন্টে নতুন হয়ে থাকেন তাহলে তারা বিস্তারিত জানতে এই পেজ দেখতে পারেন, Module Development

ডিএনএন ৬.০তে নতুন, এরকম কিছু বিষয়ে রিভিউ দেখতে পারেন এই উইকি পেজ থেকে, DotNetNuke 6 Developer Quick Start

 

সার্ভিস ফ্রেমওয়ার্ক

সার্ভিস ফ্রেমওয়ার্ক ডেভলপারদেরকে সহজে এমন এপিআই তৈরি করার সুযোগ দেয় যা এইচটিটিপি ব্যবহারকারী যেকোনো ডিভাইসের মাধ্যমে ব্যবহার করা যায়। সার্ভিস ফ্রেমওয়ার্ক এএসপি ডটনেট এমভিসি২ এর উপরে তৈরি হয়। সার্ভিস ফ্রেমওয়ার্কের তুলনায় এএসপি ডটনেট এমভিসি২তে অল্প কিছু কাজ ভিন্নভাবে করতে হয়, বাকি সবই খুব কাছাকাছি ধরনের।

 

কোন বিষয়গুলো আলাদা?

পারমিশন ডিফল্ট(Permission Defaults)ঃ বাই ডিফল্ট এএসপি ডটনেট এমভিসি২তে বিভিন্ন এট্রিবিউট ব্যবহার করে যেকোনো কিছুই যেকোনো কাউকে কল করতে পারে, পরে সিকিউরিটির ব্যবস্থা করতে ব্যবহৃত হয়। সার্ভিস ফ্রেমওয়ার্ক এর উলটো আচরণ করে, এতে সবকিছুর বাই ডিফল্ট হোষ্ট লেভেল এক্সেস লাগে।

 

ডিএনএন কন্ট্রোলার (DnnController)

সব সার্ভিসের ক্ষেত্রে ফ্রেমওয়ার্ক কন্ট্রোলার ডিএনএন কন্ট্রোলার থেকে আসে। এএসপি ডটনেট এমভিসি কনভেনশন কন্ট্রোলারের নাম ‘কন্ট্রোলার’ দিয়ে শেষ হয়।

 

পোর্টাল সেটিংস (PortalSettings)

কারেন্ট পোর্টালের সেটিংস।

 

ইউজারইনফো (UserInfo)

কারেন্ট ইউজার

 

একটিভ মডিউল (ActiveModule)

সেইসব সার্ভিসের জন্য সীমাবদ্ধ যারা নির্দিষ্ট মডিউলের কাছে দায়বদ্ধ।

 

ডিএনএন অথরাইজ এট্রিবিউট (DnnAuthorizeAttribute)

এএসপি ডটনেট এমভিসি অথরাইজ এট্রিবিউটের মতই তবে তবে কিছু বৈশিষ্ট্য বেশি আছে, আর ডটনেট নিউকের ইউজারদেরও কাজে লাগে।

 

স্ট্যাটিক রোল (StaticRoles)

অথরাইজ এট্রিবিউটের রোলের মতই।

 

রিকোয়ার হোষ্ট (RequiresHost)

হোষ্ট লেভেল এক্সেস পেতে একে ট্রু তে সেট করা লাগে।

 

এলাউএননিমাস (AllowAnonymous)

এননিমাস এক্সেস এলাউ করতে একে ট্রু তে সেট করা লাগে।

 

আইসার্ভিসরুটম্যাপার(IServiceRouteMapper)

এএসপি ডটনেট এমভিসিতে Global.asax এর Application_Start তে রুট নরমালি ম্যাপড হয়। সার্ভিস ফ্রেমওয়ার্কে ডটনেট নিউক ইনিশিয়ালাইজ হয়ে নতুন পোর্টাল তৈরি হওয়ার পরে রুট ম্যাপড হয়।

 

আইম্যাপরুট (IMapRoute)

আইম্যাপরুট ম্যাপরুট মেথডের অনেক ওভারলোড সমন্বয় করে, যা প্রকৃতপক্ষে প্রতিটা রুটকে ম্যাপড করতে সাহায্য করে। মিনিমাম ম্যাপরুটে যা দরকার হয় তা হল,

  • string moduleFolderName
  • string url
  • string[] namespaces
  • object defaults
  • object constraints

 

সিকিউরিটি

সার্ভিস ডেভলপারদের এডিশনাল সার্ভিস ফ্রেমওয়ার্ক সিকিউরিটি সম্পর্কে সতর্ক হওয়া উচিৎ। সার্ভিস ফ্রেমওয়ার্ক সিকিউরিটি সম্পর্কে জানতে পারেন এখান থেকে, Services Framework Security

 

যা কিছু নতুন সংযুক্ত হল

জার্নাল

জার্নাল ডটনেট নিউক সাইটে প্রদর্শিত হয়, এটি আসলে কোনও ব্যাক্তি বা দলের সাম্প্রতিক কাজের একটিভিটি স্ট্রিম।

ক্লায়েন্ট রিসোর্স ম্যানেজমেন্ট এনহেন্সমেন্ট

ডটনেট নিউক ৬.২তে ক্লায়েন্ট রিসোর্স ম্যানেজমেন্টে বেশ কটি এনহেন্সমেন্ট আছে, এবিষয়ে আরও বিস্তারিত জানতে ব্লগ দেখুন, blog

ট্যাবের ক্রমানুযায়ী ব্যবস্থাপনায় পরিবর্তন

ডটনেট নিউক ৬.২.০ পেজের ট্যাবে ক্রমানুযায়ী পরিবর্তন বিষয়ে দিকনির্দেশনা দেয়। এবিষয়ে আরও জানতে দেখতে পারেন, DotNetNuke 6.2 page hierarchies

ম্যাক্সিমাম রোলে পরিবর্তন

ডটনেট নিউক ৬.২.০পূর্ববর্তী বেশিরভাগ রোলের সীমাবদ্ধতা দূর করেছে।এবিষয়ে আরও জানতে দেখতে পারেন, DotNetNuke 6.2 maximum roles

প্রফাইল ভিজিবিলিটিতে পরিবর্তন

ডটনেট নিউক ৬.২.০ সিটিপি ওয়ান অনেক নতুন প্রফাইল আপডেটের সূচনা করেছে, এদের অনেকগুলো আবার ভিজিবিলিটি অপশনকে আপডেট করে। এদের মধ্যে আছে রিড অনলি প্রপার্টি ও এডমিন অনলি প্রপার্টি ইত্যাদি। আরও জানতে দেখুন, Blog on DotNetNuke profile changes in 6.2

 

ইউজার রিলেশনশিপের সত্ত্বাগুলো নিচের অংশে বিভক্ত হতে পারে,

  • রিলেশনশিপের টাইপ,
  • রিলেশনশিপের ক্লাস,
  • ইউজার রিলেশনশিপ ক্লাস,
  • ইউজার রিলেশনশিপ প্রেফারেন্স
  • ইউজার রিলেশনশিপ স্ট্যাটাস

 

ইউজার রিলেশনশিপ স্ট্যাটাস কয়েকটি বিভাজনে বিভাজিত হতে পারে,

  • নন(None)
  • ইনিসিয়েটেড(Initiated)
  • একসেপটেড(Accepted)
  • রিজেকটেড(Rejected)
  • ইগনোরড(Ignored)
  • রিপোর্টেড(Reported)
  • ব্লকড(Blocked)

 

রিলেশনশিপ বিজনেস এপিআই

  • InitiateUserRelationship
  • AcceptUserRelationship
  • RejectUserRelationship
  • ReportUserRelationship
  • IgnoreUserRelationship
  • BlockUserRelationship
  • RemoveUserRelationship

 

ইজি রেপার (Wrapper) এপিআই

  • AddFriend
  • AddFollower
  • GetFriends
  • GetFollowers
  • AddPortalRelationship
  • AddUserList

এসব ক্ষেত্রে কিছু ব্যাতিক্রম হয়ে থাকে,

  • InvalidRelationshipTypeException
  • UserRelationshipBlockedException
  • UserRelationshipDoesNotExistException
  • UserRelationshipExistsException
  • UserRelationshipForDifferentPortalException
  • UserRelationshipForSameUsersException

ইউজারইনফো ডট সোশ্যাল

  • নতুন বৈশিষ্ট্যের সোশ্যাল টাইপ UserSocial ইউজার ইনফো ক্লাসে যুক্ত হয়
  • UserSocial একটি হাই লেভেল ক্লাস যা ব্যবহারকারীর সোশ্যাল ডিটেইলস প্রকাশ করে
  • ফ্রেন্ড, ফলোয়ার, ফলো লিস্ট এই ক্লাসের অন্তর্ভুক্ত
  • এই UserSocial ক্লাস লিস্টকে লেজি লোড (lazy-loads)করে

এছাড়াও নিউ পোর্টাল ক্রিয়েশন ও আপগ্রেড করা ডটনেট নিউক ৬.২.০এর পরিষেবাগুলোর মধ্যে পরে।

গ্লোবাল ইনপুট ফিল্টারঃ

ডটনেট নিউক ৬.২.০তে এপিআই মেথড টেক্সট ফিল্টারিং অপশন সাপোর্ট করে। এরসাথে সমন্বিত থাকে রিপ্লেস/ রিমোভ ফাংশন।

এসএসএল অফলোডিং

ডটনেট নিউক ৬.২.০ এসএসএল অফলোডিং সাপোর্ট করে, সেই সাথে কোনও পেজকে নিরাপদ বলে আখ্যায়িত করার ক্ষমতাও দেয়।

সিকিউর ইউজার সেটিং

এটি স্টোরিং ভ্যালু ও রিট্রিভিং ভ্যালুর সমন্বয়ে সেটিং করা যায়।

 

ম্যাসেজিং ও নোটিফিকেশন

ম্যাসেজিং ও নোটিফিকেশনের জন্য ডটনেট নিউক ৬.২.০এর খুব উপযোগী এপিআই আছে। নোটিফিকেশনের সত্ত্বাগুলো হল,

  • NotificationType
  • NotificationTypeAction
  • Notification

 

NotificationTypes বিজনেস মেথডগুলো হল,

  • CreateNotificationType
  • DeleteNotificationType
  • GetNotificationType

 

NotificationTypeActions বিজনেস মেথডগুলো হল,

  • DeleteNotificationTypeAction.
  • GetNotificationTypeAction
  • GetNotificationTypeActions
  • SetNotificationTypeActions

 

Notifications বিজনেস মেথডগুলো হল,

  • SendNotification.
  • CountNotifications.
  • GetNotifications.
  • DeleteNotification.
  • DeleteNotificationRecipient
  • DeleteAllNotificationRecipients.
  • GetNotification.
  • GetNotificationByContext.

 

এগুলো ছাড়াও নতুন নোটিফিকেশন টাইপ একশন ক্রিয়েট করা, নোটিফিকেশন পাঠানো ও নোটিফিকেশন একশন প্রসেস করা সম্পর্কে জানতে দেখুন, Getting Started with DotNetNuke Services Framework

 

ইন্টিগ্রেটেড মডিউল

এগুলো নতুন ৬.২ এর সাথে সমন্বিত থাকে।এ সংশ্লিষ্ট লিস্ট নিচে দেয়া হল,

  • Active Forums 5.0
  • DotNetNuke Blog 5.0
  • DotNetNuke Contest 1.x
  • DotNetNuke Q&A 1.x

 

এজাইলঃ পুনরাবৃত্তিক ধাপের পরিকল্পনা (Iteration Planning)

রিদওয়ান বিন শামীম

 

এজাইলে টিমের জন্য পুনরাবৃত্তিক ধাপের পরিকল্পনার উদ্দেশ্য হল উঁচু সারির প্রোডাক্ট ব্যাকলগ আইটেমের সেট সম্পন্ন করা। এই কমিটমেন্ট পুনরাবৃত্তিক ধাপের লেন্থ/length ও টিমের কাজের গতির উপর নির্ভর করে নির্ধারিত থাকে।

প্রক্রিয়ার সাথে কারা সংযুক্ত

  • স্ক্রাম মাস্টারঃ স্ক্রাম মাস্টার এজাইল ডেলিভারি টিমের সহায়ক ব্যাক্তি হিসেবে কাজ করেন,
  • প্রোডাক্ট ওনারঃ প্রোডাক্ট ওনার প্রোডাক্ট ব্যাকলগ ও তাদের গ্রহণযোগ্যতামূলক ক্রাইটেরিয়া নিয়ে বিস্তারিত যে বিষয়গুলো আছে তাদের সমাধান করেন।
  • এজাইল টিমঃ টিমের বৈশিষ্ট্য ও কাজ এজাইল ডেলিভারির উপর নির্ভর করে,এবং কমিটমেন্ট পূরণের জন্য কাঙ্খিত লক্ষ্যমাত্রা নির্ধারণ করে।

পরিকল্পনার অপরিহার্য বিষয়

  • প্রোডাক্ট ব্যাকলগের আইটেমগুলো নির্দিষ্ট আকারের ও সংশ্লিষ্ট স্টোরি পয়েন্ট সমৃদ্ধ।
  • পোর্টফলিও আইটেমগুলো প্রোডাক্ট ওনার কর্তৃক রেঙ্কিং করানো।
  • প্রতিটা পোর্টফলিও আইটেমের জন্য গ্রহণযোগ্যতামূলক ক্রাইটেরিয়া পরিস্কারভাবে নির্ধারিত।

পরিকল্পনা প্রক্রিয়া

পুনরাবৃত্তির পরিকল্পনার ক্ষেত্রে নিচের ধাপগুলো সম্পন্ন হয়,

  • পুনরাবৃত্তিক ধাপে কতগুলো স্টোরি সংস্থাপন করা যাবে
  • স্টোরিগুলোকে টাস্কহিসেবে ভাঙ্গা এবং পৃথক ওনারের অধীনে সেই টাস্ক বণ্টন করা
  • প্রতিটা টাস্ককে ঘণ্টা এককে ভাগ করা,
  • এই এস্টিমেশন পুনরাবৃত্তিক ধাপে প্রতি টিম মেম্বারের কত ঘণ্টা করে লাগবে তা নির্ধারণে সাহায্য করে।
  • টিম মেম্বারদের তাদের গতি ও সক্ষমতা অনুযায়ী টাস্ক দেয়া হয় যাতে কারো উপর বেশি চাপ না পরে।

 

কাজের গতি পরিমাপ করা

এজাইল টিম কাজের গতি পরিমাপ করে পূর্বের পুনরাবৃত্তিক ধাপের উপর ভিত্তি করে। কোনও ধাপে ইউজার স্টোরি সম্পন্ন করতে প্রয়োজনীয় ইউনিটের গড় সংখ্যা থেকে কাজের গতি পাওয়া যায়।

চলমান ধাপে কতগুলো ইউজার স্টোরি সম্পন্ন হবে তা জানতে পরিকল্পিত কাজের গতি টিমকে সাহায্য করে।

টিমের সক্ষমতা

কোনও টিমের সক্ষমতা তিনটি সূচক থেকে নির্ধারণ করা যায়,

  • দৈনিক আদর্শ কর্মঘণ্টার সংখ্যা
  • প্রতি ধাপে ব্যাক্তি পর্যায়ে প্রাপ্ত দিনের সংখ্যা
  • সদস্যদের তার টিমের জন্য স্বতন্ত্রভাবে বরাদ্দ সময়ের হার

পরিকল্পনার ধাপগুলো

  •   প্রোডাক্ট ওনার প্রোডাক্ট ব্যাকলগের সবচেয়ে উঁচু সারির আইটেম বর্ণনা করেন
  • টিম আইটেম সম্পন্ন হতে প্রয়োজনীয় টাস্ক বর্ণনা করে
  • টিম মেম্বাররা কাজ বুঝে নেয়
  • টিম মেম্বাররা প্রতি কাজের জন্য সময় বরাদ্দ করে নেয়
  • এই প্রক্রিয়া পুনরাবৃত্তিক ধাপের সব আইটেমের জন্য রিপিট হতে থাকে
  • কোনও সদস্যের উপর চাপ পরলে বাকিদের মধ্যে কাজ বণ্টন করে সেই চাপ কমিয়ে আনা হয়।

 

আপনার ভ্রমণকে সহজ ও উপভোগ্য করতে স্যোশাল নেটওয়ার্ক : Social Networks to help with your travels

আপনার ভ্রমণকে সহজ ও উপভোগ্য করতে স্যোশাল নেটওয়ার্ক

জীবনযাত্রা বা অফিসে কাজের চাপে হাঁপিয়ে ওঠেছেন? ভালো লাগছে না আর কিছু আশেপাশে? আপনার জন্য সবচেয়ে ভালো সমাধান হলো- ভেকেশনে যাওয়া। ঘুরে আসুন কোথাও। বেড়িয়ে আসুন। বেড়াতে যেতে আপনার পরিকল্পনা দরকার? ভালো খবর হলো- ট্রিপ প্ল্যানিং এখন অনেক সহজ। প্রতিদিন আপনি যেসব সোশ্যাল নেটওয়ার্ক ব্যবহার করেন, সেগুলোই আপনাকে সহায়তা করতে পারে অনেক।
আসুন, দেখে নিই কীভাবে…

 

যাবার আগে…

পিনটারেস্ট (Pinterest)

আপনি যেখানে বেড়াতে যাবার কথা ভাবছেন, তার সুন্দর ভিজ্যুয়াল ধারণা পাওয়ার জন্য পিনটারেস্টের জুড়ি নেই। পিনিটারেস্ট আপনাকে এর সার্ভিসের মাধ্যমে আপনাকে আপনার ভ্রমণের ব্যাপারে আরো উৎসুক করে তুলবে। আপনার ট্র্যাভেল বোর্ডে আপনি অনেক ছবি পিন করে গন্তব্য স্থানের সাথে লিঙ্ক করে আপনার কাঙ্ক্ষিত স্পটের বিষয়ে অনেক বেশি তথ্য পেতে পারেন। আপনার ট্রিপের জন্য একটি বোর্ড করেন আর একটি গ্রুপ বোর্ড করে নিন আপনার ফ্যামিলি বন্ধুদের জন্য। সর্বশেষ আপডেট পেতে পিনটারেস্ট চেক করতে ভুলবেন না যেনো। পিনটারেস্টে আপনি ম্যাপ পিন করার পাশাপাশি ঠিকানা ও সাইট ডিরেকশনও পেতে পারেন।

ইনস্টাগ্রাম (Instagram)

ইনস্টাগ্রামে আপনার বন্ধু, আইডল, বা সেলিব্রেটিদের পোস্ট দেখে আপনি সহজে সিদ্ধান্ত নিতে পারেন। আপনি ইনস্টাগ্রামের বিভিন্ন পোস্ট দেখে বুঝতে পারবেন – কোনটা আপনাকে টানছে। আরো ভালো হয় যদি আপনার সম-বাজেটের লোকজনের ট্র্যাভেল পোস্ট দেখেন।

আপনি হ্যাস-ট্যাগ ব্যবহার করে ইনস্টাগ্রামে অবস্থান (Location) বা কী-ওয়ার্ড সার্চ (Keyword Search)করে অন্যান্য বিষয়ও জানতে পারেন।

ট্রিপএডভাইজর (TripAdvisor)

ট্রিপ-এডভাইজর( TripAdvisor) খুব ভালো একটি ওয়েব সাইট যা আপনার ভ্রমণ সহায়ক হতে পারে। আপনার ট্রিপে খাবার ও হোটেল সিলেকশনে এটি ব্যবহার করুন। রিভিউ দেখে আপনি সহজে সিদ্ধান্ত নিতে পারেন আপনার বাজেটের সাথে মিলিয়ে।

 

পৌঁছানোর পর…

টুইটার (Twiter)

টুইটারে হ্যাস-ট্যাগ সার্চের মাধ্যমে আপনি আপনার ট্র্যাভেল স্পটের আশেপাশে পরিচিতজনদের সম্পর্কে ও না না ইভেন্ট বিষয়ে জানতে পারেন। ট্যূরিজম বোর্ডকে ফলো করে আশেপাশের সব আপডেট পেতে পারেন। টুইটার ব্যবহারের সবচেয়ে বড় সুবিধা হলো- এখানে আপনি রিয়াল টাইম আপডেট পাবেন।

ইট-উইথ (EatWith)

আপনি যখন ট্র্যাভেলে যান, খাওয়া মানে শুধু খাদ্য নয়। খাবার পরিবেশ ও পরিবেশনা আপনার অভিজ্ঞতার ঝুলিতে স্মরণীয় হয়ে থাকবে। ইট-উইথ (EatWith) আপনাকে সাহায্য করবে এ বিষয়ে।

 

এজাইল মেনিফেস্টো (Agile – Manifesto)

রিদওয়ান বিন শামীম

 

২০০১ সালের ফেব্রুয়ারিতে ইউতাহ এর স্নোবার্ড রিসোর্টে ১৭ জন ডেভলপার একসাথে হন লাইটওয়েট ডেভলপমেন্ট নিয়ে আলোচনা করার জন্য। তাঁদের সম্মেলনের ফলে সফটওয়ার ডেভলপমেন্টের জন্য আমরা এজাইল মেনিফেস্টো পাই।

“আমরা এটি করে এবং অন্যকে এটি করতে সাহায্য করে সফটওয়ার ডেভলপমেন্টের জন্য ভাল উপায় বের করছি। এই কাজের মাধ্যমে আমরা যে বিষয়গুলো মূল্যায়ন করব তা হল,

  • ব্যাক্তি ও যোগাযোগকে প্রক্রিয়া ও যন্ত্রপাতির উপরে মূল্যায়ন করব,
  • ওয়ার্কিং সফটওয়ারকে কম্প্রিহেনসিভ ডকুমেন্টেশনের উপরে মূল্যায়ন করব,
  • গ্রাহক সম্পর্ককে কন্টাক্ট নিগোসিয়েশনের উপরে মূল্যায়ন করব,
  • পরিবর্তনের সাথে তাল মেলানোকে প্ল্যান অনুসরণের উপরে মূল্যায়ন করব,

অর্থাৎ বাম পাশের আইটেমগুলোকে ডানপাশের আইটেমের তুলনায় বেশি মূল্য দিতে হবে।”

 

এজাইল মেনিফেস্টোর ১২ টি মূলনীতি হল

• গ্রাহক সন্তুষ্টি

সচল ও দ্রুত উৎপাদনের মাধ্যমে গ্রাহক সন্তুষ্টি অর্জন করা,

• পরিবর্তনকে স্বাগত জানানো

সফটওয়ার ডেভলপমেন্টে পরিবর্তন অবশ্যম্ভাবী , তাই পরিবর্তনকে স্বাগত জানানো একটি প্রধান বিষয়।

• একটি ওয়ার্কিং সফটওয়ার উৎপাদন করা

স্বল্প সময়ে যেমন কয়েক সপ্তাহ থেকে কয়েক মাসের মধ্যে গ্রাহক চাহিদা অনুসারে একটি ওয়ার্কিং সফটওয়ার উৎপাদন করা।

• সমন্বয় সাধন

ব্যবসায়িক লোকজন ও ডেভলপারদের প্রকল্পের পুরোটা সময় সমন্বয়ের মাধ্যমে কাজ করতে হবে।

• মোটিভেশন

ব্যক্তি পর্যায়ে মোটিভেট করার প্রবণতা নিয়ে প্রকল্প গ্রহণ করতে হবে।

• মুখোমুখি কথোপকথন

ডেভলপমেন্ট টিমে মুখোমুখি কথোপকথন সবচেয়ে কার্যকর ও গঠনমূলক যোগাযোগ প্রক্রিয়া।

• ওয়ার্কিং সফটওয়ার অনুযায়ী কাজের অগ্রগতি পরিমাপ করা

ওয়ার্কিং সফটওয়ার একটি মূল বিষয়। এর মাধ্যমে অগ্রগতি পরিমাপ করা যাবে।

• কন্সটেন্ট প্যাক মেইনটেইন করা

এজাইল সাসটেইনেবল ডেভলপমেন্টের জন্য কন্সটেন্ট প্যাক মেইনটেইন করবে

• মনিটরিং

গতি বৃদ্ধির জন্য টেকনিক্যাল বিষয় ও ভাল ডিজাইনের জন্য মনিটরিং করা

• সারল্য

বিষয় আশয়গুলো সহজ রাখা ও সরল টার্ম ব্যবহার করা

• স্বনিয়ন্ত্রিত টিম

আদর্শ এজাইল টিম স্বনিয়ন্ত্রিত হবে, অন্য টিমের উপর বেশি নির্ভর করবে না কারণ স্বতন্ত্র টিম থেকেই সেরা স্থাপত্যগত, ডিজাইনভিত্তিক ও প্রত্যাশামত সফটওয়ার পাওয়া যায়।

• নিয়মিত কাজ রিভিউ করা

নিয়মিত কাজ রিভিউ করলে টিম জানতে পারে কীভাবে আরও বেশি দক্ষ হওয়া যায় ও সেই অনুযায়ী বিহেভিয়ার সমন্বয় করতে পারে।

 

Node.js – কলব্যাক এর ধারণা। কলব্যাক কি? (Callbacks Concept)

মোহাম্মদ আব্দুল্লাহ

 

Callback কি ?

Callback একটি ফাংশনের জন্য একটি asynchronous সমতূল্য । একটি কলব্যাক ফাংশন একটি নির্দিষ্ট কাজের শেষে সাধারনত কল করা হয়ে থাকে । Node.js এ callback ফাংশন প্রচুর পরিমানে ব্যবহার হয়ে থাকে । Node.js এর সকল API গুলি এমনাভাবে তৈরী করা হয়েছে যাতে করে তারা callbacks সমর্থন করে ।

উদাহরণস্বরূপ, একটি ফাইল পড়ার ফাংশন ফাইল পড়ার পর আবার আগের জায়গায় ফিরে আসে যাতে করে পরবর্তী নির্দেশ execute করতে পারে । ফাইলটি পড়ার পর ফাইলের কন্টেন্ট প্যারামিটার হিসেবে callback ফাংশন এ আসবে । এই কারনেই Node.js এত জনপ্রিয় কারন এটি কোন ধরনের ফাংশন call ছাড়াই অনেক request প্রক্রিয়া করতে পারে ।

 

উদাহরণ (Blocking Code)

input.txt নামে একটি ফাইল তৈরী করুন এবং তাতে নিম্নের text টি copy/paste করে দিন ।


Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!


একটি javascript (main.js) এ নিম্নের কোড copy/paste করে দিন


 var fs = require("fs");

 var data = fs.readFileSync('input.txt');

 console.log(data.toString());
 console.log("Program Ended");

এখন main.js ফাইলটি রান করান


$ node main.js


নিম্নের আউটপুট দেখুন


Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!
Program Ended


 

 

উদাহরণ (Non-Blocking Code)

.txt নামে একটি ফাইল তৈরী করুন এবং তাতে নিম্নের text টি copy/paste করে দিন ।


Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!


 

 

main.js এ নিম্নের কোড copy/paste করে দিন


var fs = require("fs");

 fs.readFile('input.txt', function (err, data) {
        if (err) return console.error(err);
        console.log(data.toString());
 });
console.log("Program Ended");

 

 

এখন main.js ফাইলটি রান করান


$ node main.js


নিম্নের আউটপুট দেখুন


Program Ended
Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!


 

 

এই দুটি উদাহরণ Blocking এবং Non-Blocking Code ধারণার ব্যাখ্যা করে । প্রথম উদাহারনে, প্রথমে ফাইল পড়ে এবং ফাইল পড়া শেষ হলে বাকি কোড execute করে । অন্যদিকে দ্বিতীয় উদাহারনে ফাইল পড়া শেষ হওয়ার আগেই অন্যান্য কোড execute করে ফেলে । এইভাবেই Blocking কোড sequencely program রান করে থাকে অন্যদিকে Non-Blocking Code sequencely program রান করে না ।

http://www.tutorialspoint.com/nodejs/nodejs_callbacks_concept.htm