Daha çox

ArcGIS 10 əlavəsi: Ən yüksək səviyyəli istisna idarəetmə

ArcGIS 10 əlavəsi: Ən yüksək səviyyəli istisna idarəetmə


Üzərində çalışdığım ArcGIS 10 əlavəsi olduqca sadədir-sadəcə bir alət idarəetməsi və dockable pəncərə. Mənbədə baş verdiyini gözlədiyim və başqa hər şeyi atdığım xüsusi istisnalarla məşğul oluram, amma bu çərçivə daxilində gözlənilməz istisnaları idarə etmək üçün ən yaxşı təcrübə nədir?

Hazırda yalnız bir iş görürəmtutmaq (System.Exception ex)və bunu idarə edə biləcəyim daha yüksək səviyyəli bir metodu olmayan hər bir metodda bir MessageBox-da göstərmək, amma bu ən yaxşı təcrübə kimi görünmür (və əlbəttə ki, FxCop bu barədə ağlayır).

ArcGIS 10 eklenti çərçivəsində, məsələn, yüksək səviyyəli bir istisna işləyicisinin bağlanması üçün hər hansı bir imkan varmı?Application.ThreadExceptionvə yaAppDomain.UnhandledExceptionhadisələr?

Əlavələr yalnız əsas kitabxanalardır və əsas tətbiqin başlanğıc koduna girişi olmayan tətbiqlərdir (topladıqlarımdan, bu hadisələr başlanğıc prosesində çox erkən bağlanmalıdır), təxminim yox, amma düşündüm Oradakı hər hansı bir mütəxəssisin "gözlənilməz" istisnaların eklentilərdə necə idarə olunacağına dair hər hansı bir təklifi olub-olmadığını soruşardım.


Deyə biləcəyim qədər, ESRI -nın hazırda ən yaxşı təcrübə olaraq ortaya qoyduğu səhvlərin idarə edilməsini həyata keçirirsiniz. Tətbiqin əlindən tutsaydınız (ArcMap) potensial olaraq AddIn -in bir hissəsi olmayan səhvlər haqqında mesajlar göstərə biləcəyiniz işlənməmiş istisnalar. Yazdığınız Əlavələrin çoxu yəqin ki, düymələr olacaq və bunların həqiqətən gözlənilməz səhvlərin tutularaq göstəriləcəyi yalnız iki əsas marşrutu var (onClickonUpdate).

Yalnız istifadə etməyi unutmayınatmaq' əvəzinə 'keçmiş atmaq'. Bir dəqiqə fərqi var, ancaq çağırılan funksiyalardan köpükləndikcə xətanın soyunu saxlayır.


ArcGIS əlavəsi ilə işləyirəm. Əlavəm dockable bir pəncərə və bir alət nəzarətindən ibarətdir. Alətimə görə ArcGIS qəzasının qeydlərini aparmağa çalışıram. Və Application.ThreadException istifadə edərək ən yüksək səviyyəli istisnaların idarə olunmasında bir az uğur qazanıram. İş parçacığı istisnası yalnız UI iş parçacığı üçün işlədiyi üçün, dockable pəncərəni işə saldıqdan sonra, ArcGIS -in çökməsinə səbəb ola biləcək hər hansı bir istisna, onu tutur, lakin bağlana bilən pəncərəni işə salmadan əvvəl işləmir.

ictimai sinif AddinImpl: ESRI.ArcGIS.Desktop.AddIns.DockableWindow {özəl WatershedDelineationDockableWindow m_windowUI; ictimai WatershedDelineationDockableWindow GetUI {almaq {return m_windowUI; }} ictimai AddinImpl () {Application.ThreadException += MYThreadHandler; Log.Info ("Dockable pəncərə yaradılması."); } statik boşluq MYThreadHandler (obyekt göndərən, ThreadExceptionEventArgs e) {Log.Error ("mövzuda işlənməmiş səhv" + e.Exception.ToString ()); MessageBox.Show ("mövzuda işlənməmiş səhv" + e.Exception.ToString ()); } qorunan ləğv IntPtr OnCreateChild () {m_windowUI = new WatershedDelineationDockableWindow (this.Hook); qaytar m_windowUI.Handle; } qorunan ləğv void Dispose (bool disposing) {if (m_windowUI! = null) m_windowUI.Dispose (disposing); baza atın (atın); Log.Info ("Dockable pəncərənin bağlanması"); }}

Bu, UI qurduqdan sonra ən yüksək səviyyəli istisnaları idarə edir


Ən Yaxşı Klinik Məlumat Sistemləri İcraçısı Maaş, Savannah, Corciya

Savannah, GA -da Top Klinik Məlumat Sistemləri İdarəçisi nə qədər qazanır? Savannah, GA -da ən yaxşı Klinik Məlumat Sistemləri İdarəçisinin orta əmək haqqıdır $267,158 27 May 2021 tarixindən etibarən, lakin aralıq tipik olaraq arasına düşür $201,590$321,172. Əmək haqqı aralığı təhsil, sertifikatlar, əlavə bacarıqlar, peşənizdə keçirdiyiniz illərin sayı da daxil olmaqla bir çox vacib faktordan asılı olaraq geniş şəkildə dəyişə bilər. Digər veb saytlardan daha çox onlayn, real vaxt kompensasiya məlumatları ilə Salary.com, dəqiq ödəmə hədəfinizi təyin etməyə kömək edir.

Faiz Maaş Yer Son Yenilənib
10 -cu Yüzdəlik Üst Klinik Məlumat Sistemlərinin İcraçı Maaşı $141,893 Savannah, GA 27 may 2021
25 -ci Yüzdəlik Üst Klinik Məlumat Sistemlərinin İcraçı Maaşı $201,590 Savannah, GA 27 may 2021
50 -ci Yüzdəlik Üst Klinik Məlumat Sistemlərinin İcraçı Maaşı $267,158 Savannah, GA 27 may 2021
75 -ci Yüzdəlik Üst Klinik Məlumat Sistemlərinin İcraçı Maaşı $321,172 Savannah, GA 27 may 2021
90 -cı Yüzdəlik Üst Klinik Məlumat Sistemlərinin İcraçı Maaşı $370,348 Savannah, GA 27 may 2021

İşçilərin əmək haqqını özünəməxsus iş tələblərinə və şəxsi keyfiyyətlərinə görə fərdiləşdirin.

Sənayenizdəki iş və iş yerləri üçün ən son bazar qiymətini əldə edin.

Maaşınızı inamla müzakirə etmək üçün bazarı və ixtisaslarınızı təhlil edin.

Növbəti fürsətinizi tapmaq üçün minlərlə açıq mövqe axtarın.


və bu faylı mövzu yerinizə qoyun

Aşağıdakı & ltli & gt strukturunu & lt? Php / * @escapeNotVerified * / echo $ block- & gtgetChildHtml ()? & Gt xəttindən dərhal sonra topmenu.phtml

Başqa bir alternativ xml layout vasitəsilə yeni bir şablon faylı istifadə etməkdir.

Sonra html bağlantısı yaratmaq üçün bu şablon faylını istifadə edin.

Layihəni və block_html önbelleğini təmizlədiyiniz zaman bunlar menyuda görünəcək. Qeyd:


2 Cavab 2

İşlədiyim sınadığım bütün həllər, istənməyən boş bir idarəetmə səhifəsi əlavə etmə davranışını da əhatə edir. Bir yerə basdırılmış bir həll olmadığından əmin deyiləm - və ya açıldıqdan sonra səhifəni bağlamaq üçün istifadə edə biləcəyiniz bir hiylə! - amma göstərici odur ki, WP etmək istədiyini etməsini istəmir.

Düşünürəm ki, cəhd edə biləcəyiniz ən təmiz həll birbaşa bir link əlavə etməkdir alt menyu. Yuxarıda əlaqələndirdiyim səhifələrdə bəzi işarələr tapa bilərsiniz.

Boş səhifədən keçid və ya yenidən yönləndirməni əlavə etməyi də düşünə bilərsiniz: Yəni WordPress ilə əməkdaşlıq edərək səhifəni yükləyin və oradan işləyin: Orada da görünən müəllif səhifəsinə bir keçid əlavə edin. , başqa bir prosesə başlayın, istifadəçi profili səhifəsinə işarə edin və ya istifadəçinin profil məlumatlarını redaktə etmək üçün digər funksiyaları birləşdirin.

Kiçik sualınıza cavab vermək üçün, linkin bütün istifadəçilər üçün əlçatan olması üçün add_menu_page () massivinin altıncı, qabiliyyət dəyişənləri olaraq 'manage_options' yerinə 'read' istifadə edin.


1 Cavab 1

Bir Plugin ilə edə bilərsiniz. Xüsusi bir modulda:

Magento Theme Block Html Topmenu bloku istifadə edildikdə Custom Module Plugin Topmenuplugin.php -də təyin etdiyiniz plagini istifadə edəcəyini bildirir.

İndi plugini magento app code Custom Module Plugin TopmenuPlugin.php altına əlavə edin

Beləliklə, Topmenu Bloku html -ni yaratdıqdan sonra onu kəsib yeni menyu maddələrimizi əlavə edirik. Burada 3 alt maddədən ibarət bir üst menyu var. Sadəcə "REPLACE_BY_YOUR_EXTERNAL_URL" ünvanını URL -lərinizlə və "REPLACE_BY_THE_TITLE_OF_THE_LINK" linklərinizin başlığı ilə əvəz edin.

EDIT: Tam işlək bir modul etmək üçün daha 3 fayla ehtiyacınız olacaq:

  • Xüsusi/Modul/etc/module.xml
  • Xüsusi/Modul/bəstəkar.json
  • Xüsusi/Modul/qeydiyyat.php

Bəstəkar.json

qeydiyyat.php

Bu dəyişikliklərdən sonra bir terminalda edin (və magentonuzdan dir qurun)


Tədbirdən istifadə edərək üst menyuya elementlər əlavə edə bilərsiniz page_block_html_topmenu_gethtml_before.

Addım 1 - Beləliklə, bu fayllarla bir modul yaratmalısınız (bütün fayllar app/code/[Ad Alanı]/[Modul] da olmalıdır):

Addım 2 - app/code/[Ad Alanı]/[Modul] /etc/module.xml - modul bəyannamə faylı

Addım 3 - app/code/[Ad Alanı]/[Modul] /registration.php - qeydiyyat faylı

Addım 4 - app/code/[Ad Alanı]/[Modul] /etc/frontend/events.xml - hadisələr bəyannaməsi faylı

Addım 5 - tətbiq/kod/[Ad Məkanı]/[Modul]/Müşahidəçi/Topmenu.php - həqiqi müşahidəçi

Bunun sadə yolu aşağıda verilmişdir. Məsələn, burada Solwin/freego mövzusundan istifadə edirəm, buna görə də getmək məcburiyyətindəyəm


Səhifələr '09 -da mümkündür, buna görə də '08 Səhifələrində də işləyir.

Müfəttişi açın (menyu çubuğunda Görün -> Müfəttişi Göstər düyməsini basın)

  1. Mətn bölməsini seçin
  2. "Daha çox" sekmesini seçin
  3. "Sərhədlər və amp qaydaları" altında, "heç biri" yazılan açılan düyməni basın və istifadə etmək istədiyiniz xətti seçin
  4. Açılan menyunun altındakı məzmunun üstündəki xətti göstərən simvolu seçin

Stil Çekmecesini açın (menyu çubuğunda Görün -> Stil Çekmecesini Göstər düyməsini basın)

  1. Mətn hələ də seçildiyindən istifadə etdiyiniz başlıq artıq işıqlandırılmalıdır
  2. Üslubun yanındakı oxu vurun
  3. "Seçimdən üslubu yenidən təyin et" düyməsini basın.

İndi bu başlığı istifadə etdiyiniz hər yerdə artıq üfüqi bir xətt olacaq və yeni başlıqlar daxil etdiyiniz zaman avtomatik olaraq görünəcək.


18 Cavablar 18

  1. Xüsusi linki heç bir şey qaytarmayacaq şəkildə # olaraq təyin edin
  2. Valideynlər Menyu Bağlantısını deaktiv edin (və ya ayırın və özünüz yazın)

Plugin və ya heç bir şey olmadan bunu etməyin ən asan yolu WordPress -in "Menyu" funksiyasından istifadə etməkdir. WordPress 4.8 üçün təlimatlar budur:

  1. WordPress tablosundan "Görünüş -> Menyu" ya keçin.
  2. "Menyuları Düzəlt" sekmesinde "Xüsusi Bağlantılar" ı seçin
  3. URL üçün "#" daxil edin (qiymət yoxdur)
  4. Bağlantı mətni üçün açılan menyunuzun üst səviyyəsi üçün istədiyiniz mətni daxil edin
  5. "Menyuya əlavə et" düyməsini basın
  6. Menyu elementini menyunuzda istədiyiniz yerə sürükləyin
  7. Yeni əlavə etdiyiniz menyu maddəsi üçün, maddənin sağındakı aşağı oxu vurun (maddənin solunda "xüsusi bağlantı" oxunacaq)
  8. URL -dən "#" işarəsini çıxarın. Bu - bütün brauzerlərdə - linki düz mətnə ​​çevirəcək.
  9. "Menyu Saxla" düyməsini basın

Fikirləşdiyim ən sadə üsul, Link URL dəyəri # olan Xüsusi Bağlantı maddəsi yaratmaq idi. Bu, istifadəçini eyni səhifədəki boş bir hash -ə göndərir, buna görə də heç bir yerə keçmir.

Bununla birlikdə, yer tutucu bağlantılar üçün boş hash istifadə etmənin bəzi yan təsirləri var. Bağlantı hələ də görünəcək və bir bağlantı kimi davranacaq, buna görə bir istifadəçinin bağlantı kimi göründüyünü tıkladıqda çaşdıra bilər, amma heç nə olmur. Digər təsir, boş bir hash bağlantısına tıklamağın, mövcud olan hash -ı ləğv etməsi və istifadəçini səhifənin yuxarısına göndərməsidir. Səhifənin yuxarısında olan bir menyu üçün bu qədər narahat olmaya bilər, ancaq gözləmədiyiniz zaman səhifənin gözlənilmədən tullanması, xüsusən də bu altbilgi menyusu üçündürsə, olduqca narahatdır.

Çözüm, boş hash metodlarını bir kod parçası ilə birləşdirərək, boş hash bağlantılarının menyuda istifadə edildiyini aşkar etmək və href xüsusiyyətini bu linkdən tamamilə çıxarmaqdır. Href atributu olmayan bir element, yer tutucu bağlantı yaratmaq üçün düzgün HTML 5 metodudur.


DNS -in özünün kök zonası var. bu zonanı sanki "" adlandırdı. Bağlama, bir DNS adını tam uyğunlaşdırmanızı tələb edir (bura. Və ya kök zonası daxildir). Digər istifadəçi interfeysləri sizin üçün kök zonasını götürərək bunu asanlaşdırır.

Bind daxilində, bir FQDN (sonu da daxil olmaqla, Tam Nitelikli Domen Adı) göstərməsəniz avtomatik olaraq əlavə olunacaq bir ORIGIN dəyişən təyin edə bilərsiniz. Alnitak, sintaksisin mükəmməl bir nümunəsinə və bunun müxtəlif istifadəsinə malikdir.

Ardınca '.' adı "Tamamilə Nitelikli Alan Adı", yəni mütləq bir domen adı halına gətirir.

Standart "master fayl formatı" fayllarında, arxasına 'əlavə etməsəniz.' sonra adın cari zona faylının $ ORIGIN nisbi olduğu qəbul edilir (ya aşağıda göstərildiyi kimi zona sənədində göstərilir, ya da başqa halda named.confdakı zon ifadəsindən götürülür).

The . adı kökə nisbi edir, onsuz da ad cari zonaya nisbi olacaq. Standart zona formatı rfc1035 və rfc1034 -də müəyyən edilmişdir.

Necə olur ki, everydns.net -dən istifadə etdiyim zaman, son bir müddət əlavə etməyimi tələb etmir?

Bu bir tətbiq qəribədirmi?

Bəli, asandns.net -in bunu bir az qəribə etdiyinə bənzəyir.

Ardınca "" yazmırsınızsa. sonra server $ ORIGIN dəyərini qeydin sonuna əlavə edəcək. Bu çox faydalı bir qısa yol ola bilər və yaxşı istifadə edilərsə bir çox yazmağa qənaət edə bilərsiniz.

Təəssüf ki, "" sözünü də unutmaq asandır. problemlərin diaqnozu çətin ola bilər.

Texniki olaraq "." www.serverfault.com kimi bir qeydin sonunda. "com" gTLD və "" kök zonası arasındakı ayırıcıyı göstərir.

Ardıcıl nöqtə DNS serverinə bunun tam uyğun bir ad olduğunu bildirir. Nöqtə DNS heirarxiyasının köküdür. Nöqtədən istifadə etməsəniz, DNS serveri bunun cari zonada bir rekord olduğunu zənn edəcək və bunu sizin üçün əlavə edəcək. Məsələn, exmaple.com -da host.example.org -a işarə edən bir CNAME varsa, bunun üçün sorğu -sual etdiyiniz zaman, yəqin ki, istədiyiniz kimi olmayan host.example.org.example.com əldə edəcəksiniz.

Everydns.net -ə girməməyinizin səbəbi, ehtimal ki, istifadəçi interfeysini yazmalarıdır, buna görə də bu texniki detaldan narahat olmayın.

Bir fqdn -də nöqtələr həqiqi identifikatorlardır. "com" və "edu", "hp" və "stanford" sadəcə ixtiyari ayırıcılardır. Nöqtələr spinləri ilə unikal şəkildə müəyyən edilir.


Mərkəzi idarəçiliyində Məzmun Veritabanlarını İdarə Edin [http: //CentralAdminURL/_admin/CNTDBADM.aspx] və Veb Tətbiqinizi seçin. "Məzmun verilənlər bazası əlavə et" düyməsini basın və formanı doldurun.

Bitirdikdə, aşağıdakı PowerShell skriptini istifadə edərək saytları bir ContentDB -dən digərinə köçürə bilərsiniz

Qeyd üçün, SharePoint yeni saytlar yaratdıqda Sayt Kolleksiyasının sayını bərabər tutmağa çalışmaq üçün yeni saytları balanslaşdırır. Bu o deməkdir ki, yeni bir ContenDB, eyni Veb Tətbiqindəki digər Məzmun Veritabanları ilə bərabər olana qədər bütün yeni Sayt Koleksiyonlarını alacaq.


Videoya baxın: ArcGIS 10 - Step by step # 1. An overview for beginners.