-
Çàïèñü ïîíðàâèëàñü
-
0
Ïðîöèòèðîâàëè
-
0
Ñîõðàíèëè
-
Ñðåäà, 15 Èþíÿ 2011 ã. 16:37
+ â öèòàòíèê
Íèæå ðàññêàæó î ðåàëèçàöèè ïðîáðîñà WCF çàïðîñîâ îò îäíîãî ñåðâåðà ÷åðåç íåñêîëüêî ïðîìåæóòî÷íûõ, òàê íàçûâàåìûé wcf tunneling, âîïðîñ î ðåàëèçàöèè êîòîðîãî óæå ïîäíèìàëñÿ íà gotdotnet.ru. Òàì àâòîð ïðåäëàãàë èñïîëüçîâàòü Castle.DynamicProxy äëÿ äèíàìè÷åñêîé ãåíåðàöèè ïðîêñè-êëàññîâ äëÿ ñîçäàíèÿ êàíàëà. Îäíàêî êîììåíòàòîðû îòìåòèëè, ÷òî ïîëó÷åííûé ôóíêöèîíàë äóáëèðóåò ëèøü ñòàíäàðòíûå âîçìîæíîñòè ïðè ïðÿìîì âçàèìîäåéñòâèè òî÷êà-òî÷êà.
Àêòóàëüíîñòü ïðèîáðåòàåòñÿ, êîãäà äîáàâëÿåòñÿ íàáîð ïðîìåæóòî÷íûõ òî÷åê. Ïðè ýòîì íà êëèåíòå èäåò ïåðåõâàò âûçîâà ïðîèçâîëüíîé óäàëåííîé ôóíêöèè FuncName íà âûçîâ àáñòðàêòíîé ôóíêöèè object _DataTransfer(HeaderAuthen auth, object ServiceLink, object FuncName, object[] param); Äàëåå îáðàùåíèå òðàíñëèðóåòñÿ ÷åðåç ñåðèþ ïðîìåæóòî÷íûõ ìàøèí è â èòîãå îáðàùåíèå ïåðåäàåòñÿ íà ServiceLink, ãäå îáðàáàòûâàåòñÿ. Òàêæå âîçâðàùàåòñÿ ðåçóëüòàò. Ãðóáî ãîâîðÿ ïðèìèòèâíûé ôóíêöèîíàë Biztalk ñâîèìè ðóêàìè ïî ïåðåäà÷è soap ñîîáùåíèé â ìíîãîñâÿçíîé ñåòè. Êðîìå òîãî ìû áåç âåäîìà ïîëüçîâàòåëÿ íàêëàäûâàåì íà êàíàë çàùèòó ÷åðåç HeaderAuthen auth.
Îòäåëüíî âûêëàäûâàþ ðåàëèçàöèþ
êëàññ DynamicServiceProxy è ServiceChannelManagerInterceptor, ïîäìåíÿþùèå âûçîâ, à òàêæå ñàì âûçîâ â
ServiceChannelManager. Ñîîòâåòñòâåííî âñå çàêëàäûâàåòñÿ â áèáëèîòåêó, êîòîðàÿ äîëæíà áûòü íà âñåõ òî÷êàõ, à íà òóííåëüíûõ-ïðîìåæóòî÷íûõ òî÷êàõ åùå è
ðåàëèçóåòñÿ Êîíòðàíêò, â êîòîðîì âàæíî îïèñàòü ïåðåäàòî÷íóþ ôóíêöèþ _DataTransfer, âñå ôóíêöèè íà êîíå÷íûõ òî÷êàõ, à òàêæå âñå êëàññû è òèïû ÷åðåç KnownTypeContainer. Òàêæå âàæíî âêëþ÷èòü ñåðèàëèçàòîð XmlSerializerFormat, òàê êàê ïî óìîë÷àíèþ â WCF èñïîëüçóåòñÿ DataContractSerializer, êîòîðûõ íå ïîçâîëÿåò ïåðåäàâàòü object. Òî åñòü âûçîâû ïðîõîäèòü áóäóò, à äàííûå - íåò. Êðîìå òîãî ó XmlSerializerFormat òîæå åñòü îñîáåííîñòü, êòî íåëüçÿ ïåðåäàòü íåêîòîðûå ñòàíäàðòíûå òèïû, íàïðèìåð, DataSet êàê ïàðàìåòð, òàê êàê â íèõ èñïîëüçóåòñÿ íåòèïèçèðîâàííûé ArrayList. Âîò ïîæàëóé è âñå, ÷òî íóæíî çíàòü.
-
Çàïèñü ïîíðàâèëàñü
-
0
Ïðîöèòèðîâàëè
-
0
Ñîõðàíèëè
-
Ñðåäà, 12 ßíâàðÿ 2011 ã. 16:22
+ â öèòàòíèê
...íåãðû íàøåãî âðåìåíè. Çà ïðîøëûé 2010 ãîä èìåë íåïðèÿòíîñòü ïåðåðàáîòàòü ñ ðàçëè÷íûìè òèïàìè ïðîãðàììèñòîâ .Net, òàê êàê ñàì ïðîãðàììèðóþ íà Chsarp. Íèæå ñâîåîáðàçíûé îáçîð î ïå÷àëüíîé êàðòèíå ïîäðàñòàþùåãî ïîêîëåíèÿ, âûâîäû è ìîæåò â ñëåäóþùåì ïîñòå ïðèâåäó ïåðåâîä îäíîé èíòåðåñíîé êíèãè î òîì, êàê èñêàòü õîðîøèõ ïðîãðàììèñòîâ.
Èòàê, çàäà÷ó ÿ ñòàâèë äîñòàòî÷íî ñëîæíî è îáùíî, îïèñûâàÿ ÷òî äîëæíî ðàáîòàòü ãëàçàìè ïîëüçîâàòåëÿ è ðàçðåøàÿ çàäàâàòü ìíå âîïðîñû ïî õîæó è îãðàíè÷èâàÿ â çàðïëàòå ðàìêàìè ðàçóìíîãî. ×òî ïîëó÷èëîñü èëè âõîäíûå äàííûå:
- Ïåðâûé òèï. Æåíàò. Ìîñêâà.  ñîö-ñåòÿõ âðåìÿ íå òðàòèò. Âåäóùèé ðàçðàáîò÷èê ìåëêîãî êîììåð÷åñêîãî ïðåäïðèÿòèÿ. Èìåë õîðîøèå ïðàêòè÷åñêèå íàâûêè è òðåáîâàòåëüíî îòíîñèëñÿ ê êîäó ïî ÷àñòè ðåàëèçàöèè, äëÿ ðàáîòû ñ äàííûìè ïåðåâàðèâàë òîëüêî Linq. Íå ñïðàâèëñÿ, íåõâàòêà âðåìåíè.
- Âòîðîé. Æåíàò. Ìîñêâà. Ñèäèò âêîíòàêòå. Âåäóùèé ðàçðàáîò÷èê â îêîëî-ãîñóäàðñòâåííîé ñòðóêòóðå. Èìåë ïëîõèå ïðàêòè÷åñêèå íàâûêè, ïî îáðàçîâàíèþ - ïðîãðàììèñò. Íå ñïðàâèëñÿ, ïî êà÷åñòâó ðåàëèçàöèè.
- Òðåòèé. Õîëîñò. Ïðèåõàë â Ìîñêâó íà ó÷åáó-çàðàáîòêè. Ñèäèò â Òâèòòåðå, ïèøåò ñòàòüè íà õàáð. Èìåë ñðåäíèå ïðàêòè÷åñêèå íàâûêè, ïî îáðàçîâàíèþ - ïðîãðàììèñò. Íå ñïðàâèëñÿ, íåõâàòêà âðåìåíè.
- ×åòâåðòûé. Æåíàò. Ìîñêâà. Ñèäèò â Æèâîì Æóðíàëå. Èìåë îáøèðíûå ïðàêòè÷åñêèå íàâûêè, ïî îáðàçîâàíèþ - ïðîãðàììèñò. Ðåàëèçîâûâàë âñå ïî òåîðèè - îò àáñòðàêòíîé ìîäåëè. Íå ñïðàâèëñÿ, ïî êà÷åñòâó ðåàëèçàöèè.
- Ïÿòûé. Õîëîñò. Íå Ìîñêâà. Íå ñèäèò â ñîö.ñåòÿõ. Èìåë ïëîõèå ïðàêòè÷åñêèå íàâûêè.  öåëîì ñïðàâëÿåòñÿ, äåëàåò íå ñîâñåì òî, êàê íàäî, íî íà çàìå÷àíèÿ, ÷òî ýòî íóæíî ïåðåäåëàòü ïîòîìó-òî, ðåàãèðóåò íîðìàëüíî, ïîòîìó ÷òî åñëè íå ñïðàâèòñÿ, òî åìó â Çàìêàäüå áóäåò íå÷åãî êóøàòü.
È âîò åñëè ó ìåíÿ ñ ïðîãðàììèñòàìè òàêèå ïðîáëåìû âîçíèêàþò, òî êàêèå æå ïðîáëåìû âîçíèêàþò ó ðàçëè÷íûõ ãóìàíèòàðèåâ, êîòîðûå äàëåêè îò ïðîãðàììèðîâàíèÿ. Ïîýòîìó íèæå íåáîëüøîé ñïèñîê õîðîøèõ ÷åðò äëÿ íàåìíîãî ïðîãðàììèñòà, êîòîðûé áóäåò íà âàñ âêàëûâàòü êàê íåãð è ñäåëàåò òî, ÷òî íàäî:
- Õîëîñò. Ãîâîðèò î òîì, ÷òî ó íåãî åñòü âðåìÿ ðàáîòàòü.
- Íå ñèäèò â ñîö.ñåòÿõ è íå ïèøåò ñòàòüè î òîì êàê íàäî ïðîãðàììèðîâàòü. Èáî îäíî äåëî ó÷èòü, à äðóãîå äåëî ðåàëèçîâûâàòü.
- Ïî îáðàçîâàíèþ òåõíàðü, íî íå ñïåöèàëèçèðîâàëñÿ íà ïðîãðàììèðîâàíèè â âóçå. Åìó äîëæíî áûòü íàïëåâàòü íà òåîðåòè÷åñêóþ áàçó, à âîëíîâàòü òîëüêî òî, ÷òî íàïèñàíî â äîêóìåíòàöèè è êàê ýòî ñäåëàòü ïîáûñòðåå, äà ÷òîáû ðàáîòàëî.
- Íå æèâåò â Ìîñêâå.
- Óæå äåëàë íåñêîëüêî äðóãèõ ïðîåêòîâ â òîì ÷èñëå è äëÿ ñåáÿ. Òî åñòü ñàìî-îáó÷àåì!
Òî åñòü ñàìîå ãëàâíîå - ýòî íàâûêè ñàìîîáó÷åíèÿ ïî äîêóìåíòàöèè, âåäü ïðîãðàììèñòû, êàê íèêòî äðóãîé äîëæíû óìåòü ó÷èòüñÿ íà ñîáñòâåííûõ îøèáêàõ è ïðåîäîëåâàòü èõ.
-
Çàïèñü ïîíðàâèëàñü
-
0
Ïðîöèòèðîâàëè
-
0
Ñîõðàíèëè
-
×åòâåðã, 16 Ñåíòÿáðÿ 2010 ã. 23:50
+ â öèòàòíèê
Âñåãäà íå ëþáèë âûäà÷ó JSON çà òî, ÷òî îíà ïîäðàçóìåâàåò îáðàáîòêó â JS íà ñòîðîíå êëèåíòà, à çíà÷èò ìíîãî ãåìîðà äëÿ ïðîãðàììèñòà. Íî îêàçûâàåòñÿ ñóùåñòâóåò óæå è ïîëíîöåííîå ðåøåíèå äåëàþùåå JSON íå ñëîæíåå îáû÷íîé XML ñåðèàëèçàöèè. Ðå÷ü ïðî
newtonjson.dll, íàïèñàííóþ íà .Net è íåïëîõî äîêóìåíòèðîâàííóþ. Îòäåëüíî ïîðàäîâàëà âîçìîæíîñòü êîíâåðòàöèè êîíå÷íîãî ëèñòà äåðåâà â ïðîèçâîëüíûé òèï ïóòåì ïðîñòîãî âûçîâà òèïà
cursor["leafname"].Value();. Âîò áû âñå çíà÷åíèÿ ÿ÷ååê äëÿ äàòàãðèäîâ òîæå èìåëè òàêîé øàáëîíèçàòîð, ÷òîáû íå ïðîïèñûâàòü êàæäûé ðàç ïðèâåäåíèå òèïà.
Ïðèìåð JSON ñåðèàëèçàòîðà â .Net äëÿ ðåçóëüòàòîâ âûäàâàåìûõ ãóãëîì ïðè ïîèñêîâûõ çàïðîñàõ ÷åðåç AJAX API -
ìîæíî íàéòè â ïîñëåäíèõ èçìåíåíèÿõ blogsapi
PS: îòäåëüíî îòìå÷ó, ÷òî ãîòîâ âçÿòü ïðîãðàììèñòà íà ÷àñòè÷íóþ çàíÿòîñòü äëÿ ïîääåðæàíèÿ ìîèõ õîááè ïðîåêòîâ è ðàçâèòèÿ íåêîòîðûõ èäåé.
-
Çàïèñü ïîíðàâèëàñü
-
0
Ïðîöèòèðîâàëè
-
0
Ñîõðàíèëè
-
Âòîðíèê, 30 Èþíÿ 2009 ã. 00:24
+ â öèòàòíèê
×òî òàêîå RSS áîëüøèíñòâî äîëæíî çíàòü - ýòî ôîðìà ýêñïîðòà òåêñòîâûõ äàííûõ ñ ñàéòà. Ëè÷íî ìåíÿ â RSS íå óñòðàèâàåò òî, ÷òî íåëüçÿ çàäàòü èäåíòèôèêàòîð ñîîáùåíèÿ óíèêàëüíûé äëÿ ìîåãî ïîñòà â ðàìêàõ ñåãîäíÿøíåãî äíÿ, à íå â ðàìêàõ ðåñóðñà, çà ÷òî îòâå÷àåò ïîëå guid. Ýòî íóæíî äëÿ òîãî, ÷òîáû RSS àãðåãàòîð, òèïà reader.google.com, ìîã ïîíÿòü, ÷òî ýòè 3 íîâîñòè ïåðåêîïèðîâàííûå íà ðàçíûå ñàéòû - åñòü îäíî è òîæå. Íàïðèìåð íîâîñòè ßíäåêñà êîïèðóþòñÿ íà õàáð è íà ÿðó, à ó ìåíÿ èç-çà ýòîãî â 3 ðàçà áîëüøå ñîîáùåíèé. Ââåäåíèå òàêîãî õýø-èäåíòèôèêàòîðà "íà äåíü" âïîëíå îïðàâäàíî. È ñîãëàñóåòñÿ ñ òåì, êàê ðàáîòàþò ñåðâèñû ñîêðàùåíèÿ ññûëîê, çàìåùàÿ ñòàðûå êîðîòêèå ññûëêè, íîâûìè çíà÷åíèÿìè, ÷òî ïîçâîëÿåò êîðîòêîé ññûëêå îñòàâàòüñÿ êîðîòêîé.
Äðóãàÿ èíòåðåñíàÿ íåñîãëàñîâàííîñòü ïðîÿâëÿåòñÿ ïðè ïîïûòêå ñîçäàíèÿ RSS âûäà÷è ïðè ïîìîùè ñåðèàëèçàöèè îáúåêòà êëàññà (ðåêîìåíäóþ áèáëèîòåêó RssToolKit 2.0 äëÿ ýòîãî). Êàê ìû çíàåì âñå ñòðîêè â CSharp õðàíÿòüñÿ â âèäå UTF-16, ïîýòîìó ïðè ñåðèàëèçàöèè ìû ïîëó÷àåì XML â ýòîé êîäèðîâêå, æåñòêî óêàçàííîé â çàãîëîâêå. Íî, êàê îêàçàëîñü, íåêîòîðûå áðàóçåðû - FireFox, IE8 (â Opera âñå âïîðÿäêå) - íàîòðåç îòêàçûâàþòñÿ âîñïðèíèìàòü òàêîé XML, òðåáóÿ UTF-8 è æåñòêîãî çàäàíèÿ âåðñèè RSS, ïîýòîìó ïðèøëîñü äîïèñàòü RssToolKit, äîáàâèâ ïðåîáðàçîâàíèå êîäèðîâîê ñëåäóþùèì îáðàçîì:
×èòàòü äàëåå...
-
Çàïèñü ïîíðàâèëàñü
-
0
Ïðîöèòèðîâàëè
-
0
Ñîõðàíèëè
-
Ïîíåäåëüíèê, 13 Àïðåëÿ 2009 ã. 17:17
+ â öèòàòíèê
Êàê îêàçàëîñü äåëàòü ñêðèíøîòû ñàéòîâ íå òàêàÿ óæ è ïðîñòàÿ çàäà÷à. Íî âûõîä èç íåå ìîæíî íàéòè ñîçäàâàÿ îòäåëüíûì ïîòîêîì ñêðûòóþ ôîðìó ñ îáúåêòîì WebBrowser è èñïîëüçóÿ íåêîòîðûå êîìïîíåíòû MS IE7 .
Íèæå èäåò ìàëîêîììåíòèðîâàííûé êîä, êîòîðûé ïîäñêàæåò Âàì, êàê ýòî ïðàâèëüíåå âñåãî ñäåëàòü. Åñëè åñòü âîïðîñû, òî ãóãëèòå è ðàçáèðàéòåñü â äîêóìåíòàöèè:
Copy
-
Çàïèñü ïîíðàâèëàñü
-
0
Ïðîöèòèðîâàëè
-
0
Ñîõðàíèëè
-
×åòâåðã, 26 Ôåâðàëÿ 2009 ã. 02:38
+ â öèòàòíèê

Ïðè èíäåêñèðîâàíèè àðõèâà îôèñíûõ ôàéëîâ ìíå ïîíàäîáèëîñü èçâëåêàòü òåêñòîâóþ èíôîðìàöèþ èç ðàçëè÷íûõ ôàéëîâ òàêèõ êàê DOC èëè PDF.
Ðåøåíèå íåñëîæíîå, äîñòàòî÷íî âîñïîëüçîâàòüñÿ íåñêîëüêèìè áèáëèîòåêàìè. Äëÿ PDF - ýòî
PDFBox, ïîðòèðîâàííûé ñ Java íà CSharp. Äëÿ DOC - ýòî Microsoft.Office.Interop.Word.dll èç íàáîðà OfficeAPI. Äëÿ óäîáñòâà, íåîáõîäèìûå áèáëèîòåêè ìîæíî ñêà÷àòü îäíèì àðõèâîâ
ïî ññûëêå
Ïîä êàòîì ÿ ïðèâåäó êîä, ïîêàçûâàþùåãî êàê ñ íèìè ðàáîòàòü.
×èòàòü äàëåå...