مستوحاة من هذا المنصب.
هذا نموذج لتطبيق تم تطويره باستخدام asp وtypescript الكلاسيكي.
في بعض الأحيان نكون ببساطة عالقين في التطبيقات القديمة التي تعمل بنظام ASP الكلاسيكي.
يضيف TypeScript أدوات مفيدة للتطوير مثل IntelliSense، وإعادة البناء، ونظام فئة حقيقي، ونظام كتابة، وأخطاء وقت الترجمة، والإكمال التلقائي، وjsdocs، والمزيد.
يمكن استخدامه في التطبيقات الموجودة ورمز المشاركة وحالة الجلسة.
وأيضا، كان من الممتع القيام به :)
لجلب حزم js وcss من nuget، قم بتشغيل الأمر Update-Package -Reinstall
من وحدة تحكم مدير الحزم.
تقوم حزمة Handlebars.TypeScript.DefinitelyTyped بتثبيت ملفين .d.ts، ومن الضروري حذف الملف الخاص بالإصدار 1.0.0.
يتم تشغيله على IIS Express، ويمكن تنفيذه مباشرة من الاستوديو المرئي (بدون تصحيح الأخطاء).
يتم تشغيل البرامج النصية في asp الكلاسيكي بالترتيب التالي:
<script runat="server">
لا تتطابق مع اللغة الافتراضية؛<% %>
);<script runat="server">
تتطابق مع اللغة الافتراضية. لتتمكن من تنفيذ الوظيفة main()
بعد البرامج النصية المضمنة، تم الاحتفاظ باللغة الافتراضية الحالية كـ VBScript مع التوجيه <%@ language="VBScript" %>
.
أحد خيارات استخدام الآلة الكاتبة مع asp هو إضافة خطوة إلى عملية الإنشاء التي تتضمن المحتوى في علامات asp وتغيير الامتداد إلى .asp.
مصدر
بعض التكوينات المهمة للنص النصي عند استهداف asp الكلاسيكي:
{
"compilerOptions" : {
"target" : "es3" ,
"lib" : [ "es5" , "scripthost" ] ,
"module" : "none"
}
}
يمكن تشغيل ASP إما باستخدام VBScript أو JScript، وهو إصدار Microsoft من javascript، وهو متوافق مع مواصفات ECMAScript 3.
تتضمن مكتبات النوع الافتراضية التي تستخدمها الآلة الكاتبة واجهات برمجة تطبيقات متصفح جديدة تحدد كائن الطلب والاستجابة، لذلك يتعين علينا تحديد المكتبات التي نريد استخدامها حتى نتمكن من تعريف هذه الكائنات باستخدام واجهة برمجة تطبيقات ASP.
أخيرًا، ليس لدى asp أي دعم لأي من مخرجات الوحدة الممكنة.
سيكون للتعليمات البرمجية التي تم إنشاؤها من جانب الخادم ملحق .js، والذي يرسله IIS عادةً إلى العميل. لإخفاء مصادر asp، يمكننا إضافة التكوين التالي:
<!-- IIS 7+ -->
< system .webServer>
< security >
< requestFiltering >
< hiddenSegments >
< add segment = " src " />
</ hiddenSegments >
</ requestFiltering >
</ security >
</ system .webServer>
لا يعمل هذا التكوين مع IIS 6 أو أقل.
بالنسبة لهذا التطبيق، بدلاً من استخدام ملفات .asp مختلفة بما في ذلك مصادر js الضرورية، تم استخدام سير عمل mvc مع نقطة إدخال واحدة، Default.asp، والتوجيه باستخدام معلمات QueryString.
هناك خيار آخر يتمثل في إعادة توجيه أخطاء 404 إلى ملف asp، والذي يقوم بقراءة التوجيه للمسار الذي تمت محاولته.
بناء الجملة الكلاسيكي الذي يستخدمه asp لتعيين حالة الجلسة أو التطبيق غير مدعوم بواسطة الآلة الكاتبة:
<%
Session("user_id") = 1
Application("connectionstring") = "some string"
%>
سيكون البديل هو تحديد وظيفة لتعيينها وإعلان الواجهة في الآلة الكاتبة. على سبيل المثال:
function setSession ( key , val ) {
Session ( key ) = val ;
}
ثم في الآلة الكاتبة:
declare function setSession ( key : string , val : any ) : void ;
لسوء الحظ، لا يحدد كائن الخطأ الخاص بـ JScript خاصية المكدس، لذلك لا توجد طريقة سهلة لإنشاء تتبع المكدس، حيث يتم إصدار أساليب الكائن كوظائف مجهولة بواسطة الآلة الكاتبة.
يستخدم هذا التطبيق المقاود للقوالب وMoment.js لمعالجة التواريخ. كلاهما لهما بنية UMD (تعريف الوحدة العالمية)، وهي غير متوافقة مع asp الكلاسيكي، حيث أن الكائن العام غير موجود.
في asp JScript الكلاسيكي، يتم "تصدير" المتغير الموجود في الإغلاق إلى النطاق العام إذا تم تعريفه دون الإعلان عنه. على سبيل المثال:
( function ( ) {
var localFn = function ( ) {
// ...
} ;
// classic asp export
// this makes globalFn available in the global scope
globalFn = localFn ;
} ) ;
وبسبب هذا السلوك، من الضروري استبدال عمليات فحص UMD في كلا المكتبتين ببناء جملة "التصدير" هذا.
لاحظ أن المكتبات التي لا تعتمد على DOM هي التي ستعمل فقط.