একক ভিজ্যুয়াল স্টুডিও সমাধানে একাধিক অ্যাপ্লিকেশন [বন্ধ]


17

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

আমি বিকাশকারীদের কাছ থেকে অভিজ্ঞতা খুঁজছি যারা হয় হয় এইভাবে তাদের নিজস্ব অ্যাপ্লিকেশনগুলি কাঠামো করে দেয় বা যারা এটি করে এমন একটি সংস্থায় কাজ করে। এই একটি ভাল ধারণা?

  • প্রতিটি অ্যাপ্লিকেশনের জন্য পৃথক সমাধান না রেখে আপনার সমস্ত অ্যাপ্লিকেশনগুলিকে একক সমাধানে রাখার পক্ষে প্রো / কনস কী?

  • 20+ প্রকল্পের সমাধান সহ ভিজ্যুয়াল স্টুডিও কত দ্রুত?

  • উত্স-নিয়ন্ত্রিত সমবর্তী উন্নয়ন সহ সমাধান ফাইলটি কতটা স্থিতিশীল?


মনে রাখবেন যে উত্তরগুলি ভিজ্যুয়াল স্টুডিওর নির্দিষ্ট সংস্করণগুলির জন্য নির্দিষ্ট হতে পারে।
stakx

উত্তর:


21

সম্প্রতি, আমরা আমার সংস্থার প্রায় সমস্ত উত্স কোডকে একক সমাধানে স্থানান্তরিত করেছি।

কেন?

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

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

অবিচ্ছিন্ন একীকরণ এখন খুব সহজ। সংকলন এবং মোতায়েন করার একটি সমাধান। কনফিগার করার জন্য প্রায় কিছুই নেই।

এটি কি স্কেলযোগ্য?

পারফরম্যান্স অনুযায়ী, ভিজ্যুয়াল স্টুডিওতে আমি খুব অবাক হয়েছিলাম । আমি ভেবেছিলাম যে এটি 50 টি প্রকল্পের সাথে একটি সমাধান দিয়ে কাঁদতে শুরু করবে। আজ 200 টিরও বেশি প্রকল্প রয়েছে; ভিজুয়াল স্টুডিওগুলি তাদের পরিচালনা করতে পর্যাপ্ত পরিমাণে স্কেলেযোগ্য বলে মনে হয়েছিল যেন তাদের মধ্যে কেবলমাত্র 20 জন রয়েছে। হ্যাঁ, এমন কিছু জিনিস রয়েছে যা সময় নেয়। আপনি যদি কোড প্রকল্পগুলি, কোড বিশ্লেষণ ডিফল্ট অনুসারে সক্ষম করা ইত্যাদি সহ প্রতিটি প্রকল্প পুনরায় সংকলন করেন তবে এটি কিছুটা সময় নেবে বলে আশাবাদী। তবে কেউ ১০০ টির মতো দ্রুত 200 প্রকল্প সংকলন করার প্রত্যাশা করবে না এবং যাইহোক, আপনার উচিত হবে না: এটি অবিচ্ছিন্ন ইন্টিগ্রেশন সার্ভারের ভূমিকা। প্রারম্ভকালীন সময় (ঠান্ডা শুরু, তারপর সমাধান লোড করা) চিত্তাকর্ষকভাবে দ্রুত ; 10 টি প্রকল্পের মতো দ্রুত নাও হতে পারে তবে এটি এখনও খুব গ্রহণযোগ্য (পাঁচ বছরেরও বেশি আগে কোনও মেশিনে 20 সেকেন্ডের অধীনে কেনা হয়েছিল)।

আরও এগিয়ে যাওয়ার জন্য, পদ্ধতিগতভাবে প্রকল্পগুলি আনলোড করা ভাল ধারণা (এবং সমাধানগুলির মধ্যে ডিরেক্টরিতে যখন প্রকল্পগুলি সংগঠিত করা হয় তখন সত্যই সহজ)। যদি কেউ এমন কোনও কিছুতে কাজ করে যার জন্য লোড করা মাত্র তিনটি প্রকল্পের প্রয়োজন হয়, তবে 200 টি প্রকল্পের লোড করার দরকার নেই (যদি না, নির্ভরতা প্রভাবিত হতে পারে)।

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

উপসংহার

যদি আমাকে আবার সিদ্ধান্ত নিতে হয়:

  1. আমি এখনও সবকিছুকে একটি একক সমাধানে স্থানান্তরিত করব। এটি ভাঙা নির্ভরতাগুলির ব্যথা প্রচুর পরিমাণে হ্রাস করে এবং একা এই সুবিধাটি একেবারেই মূল্যবান। সমস্ত কোডের জন্য কেন্দ্রীভূত স্থান রাখাও একটি ভাল ধারণা; এটি উদাহরণস্বরূপ ভিজ্যুয়াল স্টুডিওর মধ্যে কোনও কিছুর সন্ধান করা সম্ভব করে। আমি দুর্বল-সম্পর্কিত দুটি প্রকল্পেও কাজ করতে পারি এবং এখনও কেবল একটি ভিজ্যুয়াল স্টুডিও উইন্ডো খোলা আছে।

  2. আমি আরও কিছুটা নুগেট এবং একটি বেসরকারী নুগেট সার্ভার হোস্ট করার ক্ষমতা নিয়েও অধ্যয়ন করব। নুগেটের মাধ্যমে নির্ভরতা পরিচালনা করা যখন আপনি কয়েকটি সাধারণ প্রকল্পকে একত্রীকরণ করতে চান না তখন কিছু সমস্যার সমাধান করতে পারে। ব্যক্তিগতভাবে, আমার কাছে এ জাতীয় মামলা ছিল না, তবে আমি ধারণা করি যে অন্যান্য সংস্থাগুলিরও এটি হতে পারে।

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


2
মাত্র কয়েকটি পয়েন্ট এফওয়াইআই: গতি / পারফরম্যান্স যদি কোনও সমস্যা হয় তবে আপনি ভিএস-তে .csproj ফাইলের মাধ্যমেও প্রকল্পগুলি খুলতে পারেন। একটি নিউগেট "প্রাইভেট সার্ভার" হ'ল একটি নেটওয়ার্ক ফোল্ডার (এবং সেই ফোল্ডারটিকে প্যাকেজ উত্স হিসাবে ভিএস-এ যুক্ত করুন) - কেবলমাত্র নুপকিগ ফাইলগুলি সেখানে ফেলে দিন এবং এটি কাজ করে।
স্টিভেন ইভার্স

ধন্যবাদ, একক সমাধানের সেটআপের সাথে আপনার অভিজ্ঞতাগুলি ভাগ করে নেওয়ার জন্য মাইনমা; একটি খুব বিস্তারিত এবং সহায়ক উত্তর। আমার কাছে যে রিজার্ভেশন রয়েছে তা হল একটি সমাধানে সমস্ত অ্যাপ্লিকেশন একসাথে রাখার সাথে একজন জুনিয়র বিকাশকারীকে সবকিছুতে অ্যাক্সেস দেওয়া। আমরা আনখসভন ব্যবহার করি এবং আমি জুনিয়র বিকাশকারীকে একটি একক অ্যাপ্লিকেশনটির জন্য ইউআরএল দেব যা আমি তাদের সবকিছুর অ্যাক্সেস দেওয়ার চেয়ে তাদের কাজ করাতে চাই। এই সম্পর্কে কোন চিন্তা?
ব্রুসহিল

@ ব্রুসহিল: এসভিএন এর সাহায্যে আপনি ঠিক কী কনফিগার করতে পারবেন যাঁর অ্যাক্সেস রয়েছে। জুনিয়র বিকাশকারী এখনও প্রতিটি রুট ডিরেক্টরি দেখতে সক্ষম হবেন ( সার্ভার ফল্টে আমার প্রশ্ন দেখুন ), তবে সীমাবদ্ধ প্রকল্পগুলিতে অ্যাক্সেস করতে সক্ষম হবেন না।
আর্সেনী মরজেনকো

2
দৈনিক কোড কমিট করার জন্য বিকাশকারীদের বড় দলগুলির সাথে কয়েকটি বড় সংস্থার জন্য কাজ করা আমি আপনাকে বলতে পারি যে একক সমাধানের পদ্ধতির কাজ হয় না। প্রতিটি প্রকল্প ওভারহেড হয়। লোড আপ, বিল্ডিং এবং godশ্বর জানেন যে কোনও ব্যক্তি প্রজেক্ট / পোস্ট পোষ্ট বিল্ড স্টেপগুলির সাথে কী সংযুক্ত থাকতে পারে। এখন বিকাশকারীদের একটি বিশাল দল নিয়ে, আপনার প্রতিদিন সেই সমস্ত প্রকল্পের মধ্যে পরিবর্তন হবে। একটানা সংহতকরণের জন্য প্রতিটি চেক-ইন সহ চলমান ইউনিট পরীক্ষা ইত্যাদি অন্তর্ভুক্ত করুন এবং তারপরে আপনার আরও বেশি ওভারহেড থাকবে। ডিপ্লয়-সক্ষম ইউনিট (পরিষেবা, ওয়েবসাইট) প্রতি একক সমাধান পান এবং নিউগেটের মতো প্যাকেজ ম্যানেজার ব্যবহার করুন।
সর্বদা

8

এটি উদ্দেশ্যমূলক ব্যবহার intended

প্রতিটি অ্যাপ্লিকেশনের জন্য পৃথক সমাধান না রেখে আপনার সমস্ত অ্যাপ্লিকেশনগুলিকে একক সমাধানে রাখার পক্ষে প্রো / কনস কী?

  • পেশাদাররা:
    • প্রকল্পগুলির মধ্যে ইয়েজার রেফারেন্স
    • সহজ ডিবাগিং / পদবিন্যাস মাধ্যমে
    • প্রসেসগুলির সাথে সংযুক্ত করা সহজ (যেমন আপনি একটি উইন্ডোজ পরিষেবা দিয়ে পদক্ষেপ নিচ্ছেন, যখন এটি ভাগ করা লাইব্রেরি কোডটিতে ঝাঁপ দেয় এবং এটি ঠিক কাজ করে কারণ সমস্ত চিহ্নগুলি ইতিমধ্যে লোড করা হয়েছে এবং তার জন্য অ্যাকাউন্ট করা হয়েছে)
    • আদর্শের মধ্যে কোড অনুসন্ধান আরও ভাল কাজ করে (আপনি প্রয়োজনীয় কোডটি কোন প্রকল্পের সন্ধান করছেন তা অবশ্যই আপনাকে জানতে হবে না)
    • ক্রস-প্রকল্পের চেঞ্জলিস্টগুলি পরিচালনা করা সহজ (যেমন আপনি লাইব্রেরির কোড পরিবর্তন করেছেন, সুতরাং আপনাকে একই সাথে ক্লায়েন্ট কোডটি আপডেট করতে হবে, 1 টি চেকইন সহ)
  • কনস:
    • গতি গড়ার: যদি আপনি "সমস্ত পুনর্নির্মাণ" এর অভ্যাসে থাকেন তবে বিল্ডগুলি আরও বেশি সময় নেয়। অনেক দীর্ঘ এবং বর্ধনশীল বিল্ডগুলির মাঝে মাঝে মজার আচরণ থাকে।
    • আদর্শ গতি: পরবর্তী দেখুন

20+ প্রকল্পের সমাধান সহ ভিজ্যুয়াল স্টুডিও কত দ্রুত?

20+ প্রজেক্টের সাথে ... এত খারাপ নাও হতে পারে। ভিএস-এর সমস্যা না থাকলে আমি আরও দেখেছি। এটি বেশ স্থিতিশীল / দ্রুত। তবুও ... যদি সমস্যা হয় তবে তা প্রশমিত করা যায়: ভিএস-তে .csproj খুলুন এবং সেখান থেকে কাজ করুন। একটি সমাধানে সমস্ত কিছু থাকার সুবিধা আপনি পান না তবে আপনি যখন প্রয়োজন হয় তখন আপনি সর্বদা স্লোনটি পুনরায় খুলতে পারেন এবং যখন প্রয়োজন হয় ঠিক তখনই .csproj এ কাজ করতে পারেন (যেমন আপনি এখন করছেন)।

উত্স-নিয়ন্ত্রিত সমবর্তী উন্নয়ন সহ সমাধান ফাইলটি কতটা স্থিতিশীল?

সমাধান ফাইলটি কেবলমাত্র যখন আপনি প্রকল্পগুলি বা সমাধান-স্তরের অবজেক্টগুলি যুক্ত / সরিয়ে ফেলেন তখনই এটি পরিবর্তন হয় so এটি এক্সএমএল, যাতে আপনি এটিতে দেখতে পারেন। এগুলি খুব কমই পরিবর্তিত হয়।


স্টিভ, আপনি বলেছিলেন "এটি হ'ল উদ্দেশ্য usage" আপনি কি এর জন্য একটি রেফারেন্স সরবরাহ করতে পারেন? ধন্যবাদ!
সংস্কার করা হয়েছে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.