কোনও এইচটিএমএল / জাভাস্ক্রিপ্টের কেবলমাত্র ওয়েব অ্যাপ্লিকেশনগুলির প্রসেস এবং কনস [বন্ধ]


35

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

আমি এএসপি.এনইটি ব্যবহারকারীর নিয়ন্ত্রণগুলি খুব দরকারী বলে মনে করি, তাই সার্ভারে পৃথক এইচটিএমএল ফাইলগুলিতে মার্কআপ টেমপ্লেটগুলি সঞ্চয় করে তত্ত্বটি এর পিছনে রাখতে চাই। এগুলি যথাক্রমে jQuery AJAX এবং jQuery এইচটিএমএল টেমপ্লেট প্লাগইনগুলির মাধ্যমে পুনরুদ্ধার এবং ব্যবহার করা হবে।

যে কোনও ইনপুট অত্যন্ত প্রশংসা করা হবে।

পিএস নুব প্রশ্নের জন্য দুঃখিত, তবে এই জাতীয় ওয়েব আর্কিটেকচারটি কি ওয়েব -২.০ হিসাবে পরিচিত বা আমি পুরোপুরি অফ-ট্র্যাক?


1
আপনি কি এইচটিএমএল / জাভাস্ক্রিপ্টের সাথে এসপ নেটওয়ার্ডগুলি প্রতিস্থাপন করতে চান বা আপনি পুরো ব্যবসায়ের যুক্তি (বৈধকরণ ইত্যাদি) সামনের প্রান্তে প্রকাশ করতে চান?
jলজেকার

1
ভাল প্রশ্ন. পৃষ্ঠাটি হালকা করার জন্য আমি কেবল এইচটিএমএল / জাভাস্ক্রিপ্টে ফ্রন্টএন্ড করার কথা ভাবছি যাতে এটি মোবাইল / প্যাডগুলিতে দ্রুত হয়। সুতরাং সম্ভবত শুধু asp.net নিয়ন্ত্রণ প্রতিস্থাপন। ওয়েবসওয়ার্সের মাধ্যমে সার্ভারে সমস্ত কল, সুতরাং ডাব্লুসিএফ পরিষেবাটি কোনওভাবে বৈধকরণের সাথে ডিল করা উচিত you আপনি কি মনে করেন এটি সম্ভব?
hofnarwillie

আমি এখানে অনুরূপ প্রশ্ন জিজ্ঞাসা করছি: stackoverflow.com/questions/34020543/... : এবং এখানে stackoverflow.com/questions/33934101/...
smwikipedia

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

1
@ এসএমউইকিপিডিয়া ধন্যবাদ, তবে আমি দেখতে পেয়েছি যে ক্লায়েন্ট সাইডের বৈধতা কেবলমাত্র ব্যবহারকারীদের স্বাচ্ছন্দ্যের জন্য ব্যবহার করা উচিত। আসল বৈধতা সার্ভার পাশ করা উচিত। ক্লায়েন্টাইড বৈধতা আপনার অ্যাপ্লিকেশন ব্যবহারকারীকে বন্ধুত্বপূর্ণ করে তোলে তবে সার্ভার সাইডের বৈধতা সুরক্ষা এবং বৈধতা নিশ্চিত করে, কারণ ক্লায়েন্ট সাইডের বৈধতা সহজেই বন্ধ করা যায়।
hofnarwillie

উত্তর:


31

আমরা এই কৌশলটি কেবলমাত্র একটি ওয়েব অ্যাপ্লিকেশনটির জন্য ব্যবহার করছি যা আমরা কাজ করছি। আমার ব্যাকএন্ডটি জাভা এসডিকে ব্যবহার করে গুগল অ্যাপ ইঞ্জিনে হোস্ট করা হয়েছে, এবং আমার সম্মুখভাগটি এইচটিএমএল, সিএসএস এবং জাভাস্ক্রিপ্ট (jQuery সহ) ব্যবহার করে।

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

সুবিধা: ওয়েব ডিজাইনারদের সাথে কাজ করা

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

সার্ভার-সাইডের সমস্ত চিহ্নআপ ছাড়াই আমরা আরও চৌকস হয়েছি। ওয়েব ডিজাইনার 3 বা 4 বার তার মূল নকশাটি সরাসরি অদলবদল করেছে এবং আমার দিক দিয়ে খুব কম পরিবর্তন করেছে ised

আমার কাছে তাঁর মন্তব্যটি হ'ল তিনি অনুভব করেছিলেন যে এইচটিএমএল জীবিত ছিল যাতে সে এটি সম্পাদনা করতে পারে এবং তারপরে তত্ক্ষণাত গতিশীল ডেটা সহ তার মেশিনে পরিবর্তনগুলি দেখতে পারে। ইন্টিগ্রেশন বেশিরভাগ স্বয়ংক্রিয়ভাবে আমাদের এতে উভয়ই উপকৃত হয়েছে।

সার্ভার-সাইড কোড এবং এইচটিএমএল / সিএসএস হ্যান্ডঅফস

অতীতের প্রকল্পগুলিতে, তাকে জাভা বিকাশকারীদের কাছে এইচটিএমএল এবং সিএসএস হ্যান্ডঅফ করতে হয়েছিল যারা তার এইচটিএমএল এবং সিএসএস নেবে এবং জেএসপি প্রযুক্তি ব্যবহার করে এটি সম্পূর্ণরূপে পুনর্লিখন করবে। এটি প্রচুর সময় নেয় এবং পৃষ্ঠাগুলির প্রকৃত রেন্ডারিংয়ের পাশাপাশি সূক্ষ্মভাবে গুরুত্বপূর্ণ পার্থক্যের পাশাপাশি ডাব্লু 3 সি বৈধকরণকারীর এটির বৈধতা পেতে পারে।

সামগ্রিকভাবে, আমরা উভয়ই এই কৌশলটি নিয়ে বেশ খুশি এবং আমার এইচটিএমএল পৃষ্ঠাগুলিতে আমার শূন্য জেএসপি পৃষ্ঠা বা সার্ভার-সাইড কোড রয়েছে।

REST / JSON টেকনিকের সমস্যাগুলি it

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

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

সুবিধা: প্ল্যাটফর্মে অন্যান্য অ্যাপ্লিকেশনগুলি নির্মিত হতে পারে

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

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

শেষ অবধি, অন্য প্রকল্প পরিচালক আমি যা করেছি তা দেখেছিল এবং এটি তাত্ক্ষণিকভাবে স্পষ্ট হয়ে গেছে যে বৈশিষ্ট্যটি কেবল ধারণার প্রমাণের চেয়ে বেশি হওয়া দরকার, তাই তাঁর দল এটি বাস্তবায়ন করে।

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


2
ধন্যবাদ. এটি আমার প্রশ্নের সম্পূর্ণ উত্তর দেয়। আপনি একটি স্পষ্ট এবং সংক্ষিপ্ত উত্তর দেওয়ার সময়টি প্রশংসা করুন। +1
13/09 এ hofnarwillie

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

@ jmort253 চমৎকার উত্তরের জন্য অনেক ধন্যবাদ। আমি ঠিক একই স্থাপত্য সম্পর্কে ভাবছিলাম এবং আপনার অনুশীলন আমাকে এটির সাথে যেতে আত্মবিশ্বাসী করে তোলে। আমি এখানে অনুরূপ প্রশ্ন জিজ্ঞাসা করেছি: stackoverflow.com/questions/33934101/… এবং এখানে: stackoverflow.com/questions/34020543/…
স্ম্যুইকিপিডিয়া

12

এটি অবশ্যই একটি কার্যকর কৌশল, তবে এটি রূপালী বুলেট নয়।

পেশাদাররা :

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

কনস :

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

2
ধন্যবাদ। এই মডেলটির কারণে সংঘটিত সমস্যাগুলির একটি উদাহরণ দিতে পারেন?
hofnarwillie

3
উদাহরণ: যদি ব্যবহারকারী ভোটটি উপরে ক্লিক করে এবং তারপরে ভোট আপ সার্ভার কল শেষ হওয়ার আগেই দ্রুত ভোট ডাউন ক্লিক করে, সেখানে কতটি ভোট রয়েছে?
জেবিআরউইলকিনসন

@ জেবিআরউইলকিনসন বুলিয়ান পতাকা যা স্থিতি বা সময়সীমা বা অন্তর পরীক্ষা করে?
আল্পার তুরান

1

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

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

একবার আপনি অ্যাপ্লিকেশনটিকে 2 টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো করে ফেললে আপনি ডেস্কটপ ব্রাউজারগুলির তুলনায় কোনও ডেস্কটপ প্রোগ্রাম, বা মোবাইলের জন্য অন্য একটি ইউআই - এর সাথে সম্পূর্ণরূপে ইউআই প্রতিস্থাপন করতে পারেন।

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


1

জাভাস্ক্রিপ্ট এবং এএসপি নেট-র একটি যুক্তিকে ডুপ্লিকেট করা দরকার down আপনার আবেদনের উপর নির্ভর করে এটি আপনার পক্ষে বড় সমস্যা নাও হতে পারে। এটি প্রায়শই আসে কারণ আপনি সার্ভারকে প্রতিটি ছোট জিনিস পরীক্ষা করতে জিজ্ঞাসা করতে চান না ("ব্যবহারকারীকে কি এই বোতামটি টিপতে বা এই পরিস্থিতিতে এই বিকল্পটি নির্বাচন করতে অনুমোদিত?") তবে আপনি নির্ভর করতে চান না ব্যবহারকারীর ক্লায়েন্টের নিয়ন্ত্রণ রয়েছে বলে একমাত্র ক্লায়েন্টের বৈধতা যাচাই করে।


0

আপনি যদি এখনও এএসপি.নেট ওয়েব ফর্মগুলি ব্যবহার করেন এবং আপনার অ্যাপ্লিকেশনগুলি দ্রুত করতে চান তবে আপনার যা করা উচিত তা এখানে:

  • অনুযায়ী আপনার অ্যাপ্লিকেশনকে কঠিন মনে
  • ViewStateসমস্ত পৃষ্ঠা এবং ব্যবহারকারীর নিয়ন্ত্রণগুলিতে অক্ষম করুন
  • সার্ভার সাইড নিয়ন্ত্রণ ব্যবহার করবেন না

    <%: VeiwModel.Title%> <আস্পের পরিবর্তে <শাব্দিক আইডি = "শিরোনাম" রানাত = "সার্ভার">

  • ব্যাকএন্ডে, অনআইনাইট পদ্ধতিটি ওভাররাইড করুন এবং সেখানে সমস্ত সূচনা করুন:

    সুরক্ষিত ওভাররাইড শূন্য অন ওনিট (System.EventArgs ই) {তৈরি ভিউমোডেল (); (ঙ) base.OnInit; }

  • স্কোয়াশিট ব্যবহার করে সমস্ত .css এবং .js ফাইলগুলিকে 1 এ সংকুচিত করুন

  • অলস লোড ইমেজ
  • ক্যাশে জটিল বস্তু

অবশেষে, www.porsche.se দেখুন। এটি কি খুব দ্রুত ওয়েবসাইট নয়?


এটি সত্যিই একটি দ্রুত ওয়েবসাইট। ইনপুট জন্য অনেক ধন্যবাদ। অনেক প্রশংসিত.
hofnarwillie
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.