/ / Веб Сервице Цлиент Архитектура - ц # - ц #, визуелни студио, веб-сервиси, цлоуд

Веб Сервице Цлиент Архитектура - ц # - ц #, визуелни студио, веб-сервиси, цлоуд

Јутро свима,

Задатак ми је био да развијем алат за клијентеза АПИ веб сервиса у облаку (једноставан ВСДЛ). Ја нисам искусан или чак квалификован девелопер, имам средње знање о Ц # и довољно верујем да би овај посао радио, али не желим решење које само ради, желим да изградим нешто чисто и добро кодирано које други дев може да чита и разуме и која је интуитивна.

Можда ћете желети да ме зауставите тамо и кажете: "То је тонешто што се може научити само кроз искуство. “Ако је то случај онда могу то прихватити и кренути даље, али ако имате неке савјете, остали детаљи су испод.

Решење ће бити Ц # конзолна апликација. Произвео сам спецификацију за ово, то је испод:

1.) Креирајте конзолну апликацију у .НЕТ-у која има следеће могућности:

2.) Конзумирајте ЦСВ датотеку која садржи Обрађене податке или ОДБЦ Повезивање са СКЛ базом података и читање записа директно из табела оптерећења

3.) Направите следеће позиве на Зуора Вебсервице (Асинхроно): ·
СубсцрибеВитхЕкиситингАццоунт () · Направи () ·
Пријава () · Претплати се () · Ажурирај () · Избриши ()

(*) Позиви означени са овим могу се избећи,

* могуће је креирати претплату, рачун и контакт са један позив (Субсцрибе ())

* Цреате () може бити изузетак јер се може десити да нам се деси сценарио да креирате инстанцу објекта без одговарајуће претплате.

4. Извештај о успеху и грешкама сваког записа у ЦСВ филе.

 Mappings will be done on a 1 to 1 basis, where the input file

ће имати иста имена колона као циљ

Тамо гдје ми недостаје знање слиједи дизајнкоји ће учинити ову апликацију смисленом и ефикасном. Не тражим некога да то уради за мене, оно што тражим су савети о томе како могу побољшати оно што већ радим

Тренутно само органски изграђујем рјешење због недостатка предвиђања на оваквим пословима, па сам такођер заинтересиран за ствари које могу обавити након развоја.

СВЕ Савети и критике су добродошли.

Хвала унапред,

Матт

Одговори:

2 за одговор № 1

Принципи дизајна су велика тема и какоправилно их примењује само је нешто што долази са искуством. Има их много више, а ви сте их икада користили у датом пројекту, ау неким случајевима њихово правилно коришћење значи да их уопште не користите (или да бирате само оне који одговарају пројекту). Први корак је да пишете добар код, па почињете на правом месту. :) Неколико ствари ми се издвојило:

2.) Конзумирајте ЦСВ датотеку која садржи Обрађене податке или ОДБЦ везу постављање СКЛ базе података и читање записа директно из табеле учитавања

Оно што ћете желети да урадите овде је самоИзградите логику која чини нешто са овим подацима једном. Најизравнији начин да се то постигне је да имате логику да очекујете податке у одређеном формату (вероватно пословне класе које држе анализиране податке и да ваша логика користи).

Дакле, оно што ћете урадити је да узмете улазне податке (ЦСВ / СКЛТабле / Вхатевер) и прво га рашчланите у ваше интерне пословне класе. Затим уносите анализиране податке у вашу логику која чини све што ваша апликација ради с њом. Предност је у томе што можете једном променити логику и радити са оба типа података, И ако неко дође касније и каже "сада нам је потребно да прочитамо овај Екцел фајл" све што ћете морати да урадите је да додате други парсер Да бисте добили Екцел податке у ваш интерни формат, неће бити потребне никакве измјене у логици.

4. Извештај о успеху и грешкама сваког записа у ЦСВ филе.

Мапирање ће бити извршено на бази 1 према 1, где је улазни фајл

ће имати иста имена колона као циљ

Исто као пре. Немојте претпостављати да ћете заувек извозити у ЦСВ, направити једноставну класу "РепортЕррор" или неку другу која садржи детаље о грешци и убацује је у Листу док радите вашу обраду. На крају, када је време да изнесете грешке, можете да их конвертујете у ЦСВ. Дакле, ако се овај захтев промени и уместо да пријавите грешке веб услузи, морате само да промените мали део кода (и ништа то је ваша логика обраде).

Овде је тема. Покушајте да уклопите логичке битове тако да ако се нешто промијени лако је пронаћи гдје је нешто у коду. процес или образац (поготово зато што као једна особа нећете правити велике пројекте).

3.) Направите следеће позиве на Зуора Вебсервице (Асинхроно): · СубсцрибеВитхЕкиситингАццоунт () · Цреате () · Пријава () · Претплати се () · Ажурирај () · Избриши ()

Као конзолну апликацију, постављам питање да ли сте визаправо требају да буду асинкрони или не. Шта се надате да ћете добити од асинц позива на Логин ()? Може ли ваш програм да уради било шта док чека да се Логин () врати?

Није то што је асинкро страшно тешко, али тоИС је више за управљање тада синкроних позива. За конзолну апликацију од некога кога још увек нисте искусили у технологији, нисам сигуран какву корист имате да бисте се суочили са додатним напором који вам је потребан.


0 за одговор № 2

Препоручио бих вам да прочитате књигу о веб-услугама (ово је добро) Они нису стварно нешто што можете само покупити од играња и може бити прилично фрустрирајуће ако не знате што радите.

Што се тиче развоја, препоручујем вам прототиппрви. Удари нешто што је неуредно, али ти даје идеју како да радиш ствари. Затим га можете користити као референцу када заправо креирате своју апликацију.


Сродна питања


Коментари (0)

Додајте коментар