আমি নিউগেটের সাথে এএসপি.নেট কোরে বুটস্ট্র্যাপ আপডেট করতে চাই। আমি এটি ব্যবহার করেছি:
Install-Package bootstrap -Version 4.0.0
এটি নির্ভরতা যুক্ত করেছে তবে আমি কীভাবে এটি এখন আমার প্রকল্পে যুক্ত করব? স্থানীয় নুগেট নির্ভরতার জন্য পথ কী?
আমি নিউগেটের সাথে এএসপি.নেট কোরে বুটস্ট্র্যাপ আপডেট করতে চাই। আমি এটি ব্যবহার করেছি:
Install-Package bootstrap -Version 4.0.0
এটি নির্ভরতা যুক্ত করেছে তবে আমি কীভাবে এটি এখন আমার প্রকল্পে যুক্ত করব? স্থানীয় নুগেট নির্ভরতার জন্য পথ কী?
উত্তর:
যেমন অন্যরা ইতিমধ্যে উল্লেখ করেছেন, প্যাকেজ ম্যানেজার বোভার , সাধারণত ভারী ক্লায়েন্ট-সাইড স্ক্রিপ্টিংয়ের উপর নির্ভর করে না এমন প্রয়োগের ক্ষেত্রে এই জাতীয় নির্ভরতার জন্য ব্যবহৃত হয় , যাবার পথে এবং সক্রিয়ভাবে অন্যান্য সমাধানগুলিতে যাওয়ার পরামর্শ দিচ্ছে:
..psst! বওয়ারটি বজায় রাখার সময়, আমরা নতুন ফ্রন্ট-এন্ড প্রকল্পগুলির জন্য সুতা এবং ওয়েবপ্যাকটি সুপারিশ করি !
যদিও আপনি এখনই এটি এখনই ব্যবহার করতে পারবেন তবে বুটস্ট্র্যাপও এর জন্য সমর্থন বাদ দেওয়ার ঘোষণা দিয়েছে । ফলস্বরূপ, অন্তর্নির্মিত এএসপি.নেট কোর টেম্পলেটগুলি এ থেকেও দূরে সরে যেতে ধীরে ধীরে সম্পাদনা করা হচ্ছে।
দুর্ভাগ্যক্রমে, সামনে কোনও সুস্পষ্ট পথ নেই। এটি বেশিরভাগ কারণে যে ওয়েব অ্যাপ্লিকেশনগুলি ক্রমাগত ক্লায়েন্ট-সাইডে আরও এগিয়ে চলেছে, জটিল ক্লায়েন্ট-সাইড বিল্ড সিস্টেম এবং অনেকগুলি নির্ভরতা প্রয়োজন। সুতরাং আপনি যদি এরকম কিছু তৈরি করে চলেছেন তবে আপনি কীভাবে এর সমাধান করতে হবে তা আপনি ইতিমধ্যে জেনে থাকতে পারেন এবং বুটস্ট্র্যাপ এবং জিকুয়েরিকে কেবল অন্তর্ভুক্ত করতে আপনি আপনার বিদ্যমান বিল্ড প্রক্রিয়াটি প্রসারিত করতে পারেন।
কিন্তু এখনও অনেকগুলি ওয়েব অ্যাপ্লিকেশন রয়েছে যা ক্লায়েন্টের পক্ষে ভারী নয়, যেখানে অ্যাপ্লিকেশনটি এখনও মূলত সার্ভারে চলে এবং ফলস্বরূপ সার্ভার স্থির দর্শনগুলি সরবরাহ করে। এর আগে ভরাট কোনও প্রক্রিয়া ছাড়াই ক্লায়েন্ট-সাইড নির্ভরতা প্রকাশ করা সহজ করে এটিকে পূরণ করেছে।
.NET বিশ্বে আমাদের কাছে নিউগেট এবং পূর্ববর্তী এএসপি.নেট সংস্করণগুলি রয়েছে, আমরা কিছু ক্লায়েন্ট-পার্শ্ব নির্ভরতাগুলিতে নির্ভরতা যুক্ত করতে নুগেটকেও ব্যবহার করতে পারি যেহেতু নুগেট কেবল আমাদের প্রকল্পে সামগ্রীটি সঠিকভাবে স্থাপন করবে। দুর্ভাগ্যক্রমে, নতুন .csproj
ফর্ম্যাট এবং নতুন নিউগেটের সাথে ইনস্টলড প্যাকেজগুলি আমাদের প্রকল্পের বাইরে অবস্থিত, তাই আমরা কেবল সেগুলি উল্লেখ করতে পারি না।
এটি আমাদের নির্ভরতাগুলি কীভাবে যুক্ত করতে পারে তার কয়েকটি বিকল্প সহ আমাদের ছেড়ে দেয়:
এটি বর্তমানে এএসপি.নেট কোর টেম্পলেটগুলি যা একক পৃষ্ঠাগুলির অ্যাপ্লিকেশন নয়। আপনি যখন নতুন অ্যাপ্লিকেশন তৈরি করতে সেগুলি ব্যবহার করেন, wwwroot
ফোল্ডারে কেবল একটি ফোল্ডার lib
থাকে যা নির্ভরতাগুলি অন্তর্ভুক্ত করে:
আপনি যদি বর্তমানে ফাইলগুলি ঘনিষ্ঠভাবে লক্ষ্য করেন তবে দেখতে পাবেন যে এগুলি টেমপ্লেট তৈরি করতে মূলত সেখানে বোরের সাথে রাখা হয়েছিল, তবে এটি শীঘ্রই পরিবর্তিত হওয়ার সম্ভাবনা রয়েছে। মূল ধারণাটি হ'ল ফাইলগুলি ফোল্ডারে একবারে অনুলিপি করা হয় wwwroot
যাতে আপনি তাদের উপর নির্ভর করতে পারেন।
এটি করার জন্য, আমরা কেবল বুটস্ট্র্যাপের ভূমিকা অনুসরণ করতে পারি এবং সংকলিত ফাইলগুলি সরাসরি ডাউনলোড করতে পারি । ডাউনলোড সাইটে উল্লিখিত হিসাবে এটিতে jQuery অন্তর্ভুক্ত নয় , তাই আমাদেরও এটি আলাদাভাবে ডাউনলোড করতে হবে; এটি ধারণ করে Popper.js যদিও আমরা ব্যবহারের জন্য চয়ন করেন bootstrap.bundle
ফাইল পরে-যা আমরা করব। JQuery এর জন্য, আমরা কেবল ডাউনলোড সাইট থেকে একটি একক "সংকুচিত, উত্পাদন" ফাইল পেতে পারি (লিঙ্কটিতে ডান ক্লিক করুন এবং মেনু থেকে "লিঙ্কটি সংরক্ষণ করুন ..." নির্বাচন করুন)।
এটি আমাদের কয়েকটি ফাইল দেয় যা কেবল এক্সট্রাক্ট করে এবং কপি করে ফেলবে wwwroot
ফোল্ডারে । lib
এটিকে বাহ্যিক নির্ভরতা বলে পরিষ্কার করে তুলতে আমরা একটি ফোল্ডারও তৈরি করতে পারি:
এটাই আমাদের দরকার, সুতরাং এখন আমাদের আমাদের সামঞ্জস্য করতে হবে _Layout.cshtml
ফাইলগুলি নির্ভরতাগুলি অন্তর্ভুক্ত করতে । তার জন্য, আমরা নিম্নলিখিত ব্লকটি এতে যুক্ত করব <head>
:
<environment include="Development">
<link rel="stylesheet" href="~/lib/css/bootstrap.css" />
</environment>
<environment exclude="Development">
<link rel="stylesheet" href="~/lib/css/bootstrap.min.css" />
</environment>
এর একেবারে শেষে নীচের ব্লকটি <body>
:
<environment include="Development">
<script src="~/lib/js/jquery-3.3.1.js"></script>
<script src="~/lib/js/bootstrap.bundle.js"></script>
</environment>
<environment exclude="Development">
<script src="~/lib/js/jquery-3.3.1.min.js"></script>
<script src="~/lib/js/bootstrap.bundle.min.js"></script>
</environment>
আপনি <environment>
এটিকে কিছুটা সহজ করার জন্য কেবলমাত্র সংশোধিত সংস্করণগুলি অন্তর্ভুক্ত করতে পারেন এবং ট্যাগ সহায়কগুলিকে এড়িয়ে যেতে পারেন। তবে আপনাকে চালিয়ে যাওয়ার জন্য আপনার যা করা দরকার তা এটি।
আরও আধুনিক উপায়, আপনি যদি নিজের নির্ভরতা আপডেট রাখতে চান তবে এটি এনপিএম প্যাকেজ সংগ্রহস্থল থেকে নির্ভরতা পেতে পারে। আপনি এর জন্য এনপিএম বা সুতা ব্যবহার করতে পারেন; আমার উদাহরণে, আমি এনপিএম ব্যবহার করব।
শুরু করার package.json
জন্য, আমাদের প্রকল্পের জন্য একটি ফাইল তৈরি করা দরকার , যাতে আমরা আমাদের নির্ভরতাগুলি নির্দিষ্ট করতে পারি। এটি করার জন্য, আমরা কেবল এটি "নতুন আইটেম যুক্ত করুন" কথোপকথন থেকে করি:
আমাদের এটি একবার হয়ে গেলে, আমাদের নির্ভরতা অন্তর্ভুক্ত করতে আমাদের এটি সম্পাদনা করতে হবে। এটির মতো কিছু হওয়া উচিত:
{
"version": "1.0.0",
"name": "asp.net",
"private": true,
"devDependencies": {
"bootstrap": "4.0.0",
"jquery": "3.3.1",
"popper.js": "1.12.9"
}
}
সংরক্ষণ করে, ভিজ্যুয়াল স্টুডিও ইতিমধ্যে আমাদের জন্য নির্ভরতা ইনস্টল করতে এনপিএম চালাবে। সেগুলি node_modules
ফোল্ডারে ইনস্টল করা হবে । সুতরাং যা করা বাকি তা হ'ল সেখান থেকে ফাইলগুলি আমাদের wwwroot
ফোল্ডারে। এটি করার জন্য কয়েকটি বিকল্প রয়েছে:
bundleconfig.json
বান্ডিলিং এবং মিনিফিকেশন জন্যডকুমেন্টেশনেbundleconfig.json
বর্ণিত হিসাবে আমরা বান্ডিলিং এবং মিনিফিকেশনের জন্য গ্রাহক হওয়ার বিভিন্ন উপায়গুলির একটি ব্যবহার করতে পারি । খুব সহজ উপায় হ'ল বিল্ডবান্ডলারমিনিফায়ার নুগেট প্যাকেজটি ব্যবহার করা যা স্বয়ংক্রিয়ভাবে এর জন্য একটি বিল্ড টাস্ক সেট করে।
এই প্যাকেজটি ইনস্টল করার পরে, আমাদের bundleconfig.json
নীচের বিষয়বস্তুগুলির সাথে প্রকল্পের মূলে একটি তৈরি করতে হবে :
[
{
"outputFileName": "wwwroot/vendor.min.css",
"inputFiles": [
"node_modules/bootstrap/dist/css/bootstrap.min.css"
],
"minify": { "enabled": false }
},
{
"outputFileName": "wwwroot/vendor.min.js",
"inputFiles": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/popper.js/dist/umd/popper.min.js",
"node_modules/bootstrap/dist/js/bootstrap.min.js"
],
"minify": { "enabled": false }
}
]
এটি মূলত কোন ফাইলগুলিকে কোনটির সাথে একত্রিত করতে হবে তা কনফিগার করে। আর আমরা যখন তৈরী করেছি, আমরা দেখতে পারেন vendor.min.css
এবং vendor.js.css
সঠিকভাবে নির্মিত হয়। সুতরাং আমাদের যা করতে হবে তা হ'ল _Layouts.html
সেই ফাইলগুলি অন্তর্ভুক্ত করার জন্য আমাদের আবার সমন্বয় করা:
<!-- inside <head> -->
<link rel="stylesheet" href="~/vendor.min.css" />
<!-- at the end of <body> -->
<script src="~/vendor.min.js"></script>
আমরা যদি ক্লায়েন্ট-পার্শ্ব বিকাশের দিকে আরও কিছুটা যেতে চাই, আমরা সেখানে যে সরঞ্জামগুলি ব্যবহার করব সেগুলিও আমরা ব্যবহার করতে শুরু করতে পারি। উদাহরণস্বরূপ ওয়েবপ্যাক যা সত্যই সব কিছুর জন্য খুব সাধারণভাবে নির্মিত বিল্ড সরঞ্জাম tool তবে আমরা গুল্পের মতো একটি সহজ টাস্ক ম্যানেজার দিয়েও শুরু করতে পারি পারি এবং প্রয়োজনীয় কয়েকটি পদক্ষেপ করতে পারি।
তার জন্য, আমরা gulpfile.js
আমাদের প্রকল্পের মূলটিতে নিম্নলিখিত বিষয়বস্তুগুলি যুক্ত করব:
const gulp = require('gulp');
const concat = require('gulp-concat');
const vendorStyles = [
"node_modules/bootstrap/dist/css/bootstrap.min.css"
];
const vendorScripts = [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/popper.js/dist/umd/popper.min.js",
"node_modules/bootstrap/dist/js/bootstrap.min.js",
];
gulp.task('build-vendor-css', () => {
return gulp.src(vendorStyles)
.pipe(concat('vendor.min.css'))
.pipe(gulp.dest('wwwroot'));
});
gulp.task('build-vendor-js', () => {
return gulp.src(vendorScripts)
.pipe(concat('vendor.min.js'))
.pipe(gulp.dest('wwwroot'));
});
gulp.task('build-vendor', gulp.parallel('build-vendor-css', 'build-vendor-js'));
gulp.task('default', gulp.series('build-vendor'));
এখন আমরা আমাদের ঠিক করতে package.json
উপর নির্ভরতা আছে gulp
এবং gulp-concat
:
{
"version": "1.0.0",
"name": "asp.net",
"private": true,
"devDependencies": {
"bootstrap": "4.0.0",
"gulp": "^4.0.2",
"gulp-concat": "^2.6.1",
"jquery": "3.3.1",
"popper.js": "1.12.9"
}
}
অবশেষে, আমরা .csproj
নিম্নলিখিতটি সম্পাদন করতে আমাদের সম্পাদনা করি যা প্রকল্পটি তৈরির সময় আমাদের গুল্প টাস্কটি চলে তা নিশ্চিত করে তোলে:
<Target Name="RunGulp" BeforeTargets="Build">
<Exec Command="node_modules\.bin\gulp.cmd" />
</Target>
এখন, যখন আমরা তৈরি করি, default
গুলপ টাস্কটি সঞ্চালিত হয়, যা build-vendor
টাস্কগুলি চালায়, যা আমাদের তৈরি করে vendor.min.css
এবং vendor.min.js
ঠিক যেমনটি আমরা আগে তৈরি করেছি। সুতরাং আমাদের _Layout.cshtml
ঠিক উপরের মত সামঞ্জস্য করার পরে , আমরা jQuery এবং বুটস্ট্র্যাপ ব্যবহার করতে পারি।
যদিও গুলপের প্রাথমিক সেটআপ bundleconfig.json
উপরের চিত্রের চেয়ে কিছুটা জটিল , আমরা এখন নোড-ওয়ার্ল্ডে প্রবেশ করেছি এবং সেখানে অন্য সমস্ত দুর্দান্ত সরঞ্জাম ব্যবহার শুরু করতে পারি। সুতরাং এটি দিয়ে শুরু করা মূল্যবান হতে পারে।
যদিও এটি হঠাৎ করে কেবল বোভার ব্যবহারের চেয়ে অনেক জটিল হয়ে উঠেছে, আমরা সেই নতুন বিকল্পগুলির সাথেও অনেকগুলি নিয়ন্ত্রণ অর্জন করতে পারি। উদাহরণস্বরূপ, আমরা এখন সিদ্ধান্ত নিতে পারি যে wwwroot
ফোল্ডারগুলির মধ্যে আসলে ফাইলগুলি অন্তর্ভুক্ত রয়েছে এবং সেগুলি দেখতে ঠিক কীভাবে দেখা যায়। এবং আমরা নোডের সাথে ক্লায়েন্ট-সাইড ডেভলপমেন্ট ওয়ার্ল্ডে প্রথম পদক্ষেপগুলি তৈরি করতে এটি ব্যবহার করতে পারি যা কমপক্ষে শেখার বক্ররেখাতে কিছুটা সহায়তা করা উচিত ।
node -v
, এবং একটি বর্তমান সংস্করণ পেতে nodejs.org উপর এখানে
এটি খতিয়ে দেখলে মনে হয় যে বুটস্ট্র্যাপ যুক্ত করার সাথে আমার প্রয়োজনের জন্য LibMan পদ্ধতির সবচেয়ে ভাল কাজ করে। আমি এটি পছন্দ করি কারণ এটি এখন ভিজ্যুয়াল স্টুডিও 2017 (15.8 বা তার পরে) এ অন্তর্নির্মিত এবং এর নিজস্ব ডায়ালগ বাক্স রয়েছে।
আপডেট 6/11/2020: বুটস্ট্র্যাপ 4.1.3 এখন ভিএস-2019.5 এর সাথে ডিফল্টরূপে যুক্ত হয়েছে (লক্ষ্য করার জন্য হ্যারাল্ড এস হ্যানসেনকে ধন্যবাদ।)
প্রকল্পগুলিতে ডিফল্ট পদ্ধতি ভিএস যুক্ত করে বোর ব্যবহার করে তবে দেখে মনে হচ্ছে এটি চলে যাচ্ছে। মাইক্রোসফ্টস বোভার পৃষ্ঠার শিরোনামে তারা লিখেছেন:
কয়েকটি লিঙ্ক অনুসরণ করে ভিজ্যুয়াল স্টুডিওতে ASP.NET কোরের সাথে LibMan ব্যবহারের দিকে পরিচালিত করে যেখানে এটি বিল্ট-ইন ডায়ালগ ব্যবহার করে কীভাবে লিবস যুক্ত করা যেতে পারে তা দেখায় :
সলিউশন এক্সপ্লোরার-এ, প্রকল্প ফোল্ডারে ডান ক্লিক করুন যাতে ফাইলগুলি যুক্ত করা উচিত। অ্যাড> ক্লায়েন্ট-সাইড লাইব্রেরি নির্বাচন করুন। ক্লায়েন্ট-সাইড লাইব্রেরি সংলাপটি উপস্থিত হয়: [উত্স: স্কট অ্যাডি 2018 ]
তারপরে বুটস্ট্র্যাপের জন্য কেবল (1) আনপিকেজি নির্বাচন করুন, (2) "বুটস্ট্র্যাপ @ .." টাইপ করুন (3) ইনস্টল করুন। এর পরে, আপনি কেবল _Layout.cshtml বা অন্যান্য জায়গাগুলির সমস্ত অন্তর্ভুক্তি যাচাই করতে চান। এগুলি href = "~ / lib / bootstrap / dist / js / bootstrap ..." ) এর মতো কিছু হওয়া উচিত
লিবিম্যান চেষ্টা করুন , এটি বোভারের মতোই সহজ এবং আপনি ডাউনলোড ফোল্ডার হিসাবে wwwroot / lib / নির্দিষ্ট করতে পারেন।
আমার জন্য কৌশলটি কী:
1) wwwroot> অ্যাড> ক্লায়েন্ট সাইড লাইব্রেরিতে ডান ক্লিক করুন
2) অনুসন্ধান বাক্সে "বুটস্ট্র্যাপ" টাইপ করুন
3) "নির্দিষ্ট ফাইল চয়ন করুন" নির্বাচন করুন
4) নীচে স্ক্রোল করুন এবং একটি ফোল্ডার নির্বাচন করুন। আমার ক্ষেত্রে আমি "টুইটার-বুটস্ট্র্যাপ" বেছে নিয়েছি
5) "সিএসএস" এবং "জেএস" চেক করুন
6) "ইনস্টল" ক্লিক করুন।
কয়েক সেকেন্ড পরে আমি তাদের সমস্ত wwwroot ফোল্ডার পেয়েছি। আপনি যে ক্লায়েন্ট সাইড প্যাকেজ যুক্ত করতে চান তার জন্য একই করুন।
লিবম্যান এখন মাইক্রোসফ্ট দ্বারা পছন্দসই সরঞ্জাম বলে মনে হচ্ছে। এটি ভিজ্যুয়াল স্টুডিও 2017 (15.8) এ সংহত হয়েছে।
এই নিবন্ধটি কীভাবে এটি ব্যবহার করবেন এবং বিল্ড প্রক্রিয়া দ্বারা সম্পাদিত একটি পুনরুদ্ধার সেট আপ করা যায় তাও বর্ণনা করে।
বুটস্ট্র্যাপের ডকুমেন্টেশন আপনাকে জানায় যে আপনার প্রকল্পে আপনার কোন ফাইলগুলি দরকার।
নিম্নলিখিত উদাহরণটিতে libman.json এর কনফিগারেশন হিসাবে কাজ করা উচিত।
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": [
{
"library": "twitter-bootstrap@4.2.1",
"destination": "wwwroot/lib/bootstrap",
"files": [
"js/bootstrap.bundle.js",
"css/bootstrap.min.css"
]
},
{
"library": "jquery@3.3.1",
"destination": "wwwroot/lib/jquery",
"files": [
"jquery.min.js"
]
}
]
}
আমরা এসপিএন কোরটিতে বুটস্ট্র্যাপ 4 ব্যবহার করি তবে "প্যাকেজ ইনস্টলার" এক্সটেনশন ব্যবহার করে "এনএমপি" থেকে গ্রন্থাগারগুলি উল্লেখ করে এবং এটি জাভাস্ক্রিপ্ট / সিএসএস লাইব্রেরির জন্য নুগেটের চেয়ে ভাল বলে মনে করেছি।
তারপরে আমরা বান্ডলার ও মিনিফায়ার "এক্সটেনশনটি প্রবর্তন করার জন্য প্রাসঙ্গিক ফাইলগুলি (এনপিএম নোড_মডিউল ফোল্ডার থেকে, যা প্রকল্পের বাইরে বসে) কে wwwroot এ আমরা বিকাশ / মোতায়েনের জন্য পছন্দ করি তাই ব্যবহার করি।
দুর্ভাগ্যক্রমে, আপনি নেট নেটওয়ার্ক প্রকল্পে বুটস্ট্র্যাপ (বা বেশিরভাগ অন্যান্য জাভাস্ক্রিপ্ট / সিএসএস ফ্রেমওয়ার্ক) ইনস্টল করতে নুগেট ব্যবহার করে খুব কঠিন সময় কাটাচ্ছেন। আপনি যদি নুগেট ইনস্টলটি দেখেন তবে এটি আপনাকে বেমানান বলেছে:
স্থানীয় প্যাকেজ নির্ভরতাগুলি কোথায় তা আপনার অবশ্যই জানা থাকলে সেগুলি এখন আপনার স্থানীয় প্রোফাইল ডিরেক্টরিতে রয়েছে। অর্থাত%userprofile%\.nuget\packages\bootstrap\4.0.0\content\Scripts
।
যাইহোক, আমি এনএমপি, বা বোর - এ সাইনেশ্বরের উত্তরের মত স্যুইচ করার পরামর্শ দিচ্ছি।
BS4 এখন .NET কোর 2.2 এ উপলব্ধ । অবশ্যই SDK 2.2.105 x64 ইনস্টলার এ। আমি এটি দিয়ে ভিজ্যুয়াল স্টুডিও 2017 চালাচ্ছি। এখনও পর্যন্ত নতুন ওয়েব অ্যাপ্লিকেশন প্রকল্পের জন্য ভাল।
কেন শুধু সিডিএন ব্যবহার করবেন না? আপনার বিএস কোড সম্পাদনা করার প্রয়োজন না হলে আপনাকে কেবল সিডিএন-তে কোডগুলি উল্লেখ করতে হবে।
বিএস 4 সিডিএন এখানে দেখুন:
https://www.w3schools.com/bootstrap4/bootstrap_get_started.asp
পৃষ্ঠার নীচের অংশে অবস্থিত.
এনএমপি কনফিগারেশন ফাইলটি ব্যবহার করুন (এটি আপনার ওয়েব প্রোজেক্টে যুক্ত করুন) তারপরে প্রয়োজনীয় প্যাকেজগুলি ঠিক একইভাবে যুক্ত করুন যেমন আমরা bower.json ব্যবহার করে সংরক্ষণ করেছি। ভিজ্যুয়াল স্টুডিওগুলি এটি ডাউনলোড করে ইনস্টল করবে। আপনি আপনার প্রকল্পের এনএমপি নোডের নীচে প্যাকেজটি খুঁজে পাবেন।