• Авторизация


SAX in .NET Framework 08-06-2004 13:19


SAX is not implemented in .NET. Period.
XmlReader (implemented in XmlTextReader, XmlValidatingReader, XmlNodeReader) and XmlWriter (implemented in XmlTextWriter) abstract classes both use pull model for parsing XML, as opposite for SAX that based on push model.
XmlReader class has several advantages over SAX, such as "state management, selective processing, layering, and Extra String Copy Avoidance".
комментарии: 0 понравилось! вверх^ к полной версии
К вопросу о страсти 06-06-2004 18:21


Судя по расцветке нижней одежды -
жизнь удалась,
поскольку, как прежде,
там господствуют море, дети и страсть.

И еще - глаза. Но по ним не понять.
Как говорил Талейран, тишь да гладь.

А вообще - говорить, а тем паче, курить
без подвохов, на воздуче и недопить
пол-стаканчика кваса, да в холодке -
чем не житуха? Как на лиманчике!

И зайти в волну по колено и выше,
не замочив купальник, отдаться Грише.

Не перевернув страницу, не понять, почему
в жизни стремишься только к лучшему...
комментарии: 0 понравилось! вверх^ к полной версии

Rant 04-06-2004 19:36


Объявляю денежный приз человеку, который даже не переведет, а хотя-бы укажет направления перевода на иврит следующих слов:
-витиеватый
-вычурный
-изощренный
-безмятежный
-оглушенный
-доступный

* злоупотребление (שימוש לרעה)
* рацион

комментарии: 0 понравилось! вверх^ к полной версии
Душевный разлад. 04-06-2004 19:06


Шел я себе сегодня, просто оглушенный, царившем внутри меня покоем и душевной уравновешенностью. Шел, и изнутри как-бы собой любовался: редко, когда встретитишь такую душевную идилию. А шел я купить пива. Всего лишь одну баночку, потому что если купить больше, то я и больше выпью его соответственно. А я не хотел много - одной баночки для поддержания душевной идилии, на мой взгляд, вполне достаточно. И нашел я свой "Хайнекен", холодный, в лавочке совсем не далеко от дома.
И совсем было хотел уже расплатиться и продолжить свой путь по миру прекрасного, как эта милая девочка-продавщица и говорит мне: "14 шекелей".
14 шекелей! Небесные своды! За мою милую бутылочку "Хайнекена"!
Не жалко мне, конечно, эти лишние 5 шекелей, если у нее при этом настроение улучшится. Ну так нет же! Вот просто так - взять у меня и украсть 5 шекелей. Используя мою душевную слабость и расслабленное расположение духа.
Я, конечно, что-то там пробубнил ей о несправедливости налогообложения в Израиле, но от "Хайнекена" не отказался.
И гармония меня покинула. Отлетела и она от человека, которого так цинично используют всего-лишь ради каких-то пяти шекелей.
А девочка ничего была. И улыбалась так по-человечески прямо в глаза. За пять-то шекелей каких-то!
Ну и пусть ей будет стыдно. Вот я бы никогда в жизни не стал никому улыбаться за 5 шекелей.
комментарии: 0 понравилось! вверх^ к полной версии
Из истории Xen (mostly rant) 31-05-2004 02:51


Не так уж много материалов просочилось в свет относительно Xen. Mr. Meijer и Mr. Wolfram Schulte, еще когда работали в MSR (а сегодня Мeijer перешел в Web Data Group) совместно написали несколько бумаг, больше касающихся обоснования их зарплаты в MSR,чем истинной идеологии интеграции данных в типизированные языки. Как истинно выдержанные корпоративные сотрудники, они не могли не упoмянуть там JAXP и XQuery. Вот и ссылки:
http://www.cl.cam.ac.uk/~gmb/Papers/vanilla-xml2003.html
http://www.research.microsoft.com/~emeijer/Papers/XS.pdf
Впрочем , в IBM корпоротивная культура отличается, видимо, не меньшей выдержанностью. [показать]
Don Chamberlin (IBM Fellow) даже и слышать о Xen не хочет
http://www.almaden.ibm.com/cs/people/chamberlin/. Его портрету лучше бы украшать страницу лауреатов Dr. Dobbs(2003 за участие в разработке XQuery), да и не пристало ему парировать каким-то сырым драфтам. Ему-то, после System R! Да и со-авторство в дезайне SQL приучает к срокам на десятилетия. Эта ситуация напоминает мне шахматную партию, где стороны уже наделали столько ошибок, что просто бояться разгласить, что следующая будет последней. Все надежда на рефери - я еще не видел беты SQLServer 2005, но совсем не удивлюсь, если XQuery כבר שמה.
комментарии: 0 понравилось! вверх^ к полной версии
"Шпионы в юбке" (rant) 30-05-2004 20:25


Дон в очередной раз беседовал с этой мадам
[показать] Зовут нас Mary Jo Foley - MJF. Без малого 20 лет (sic!) скоро мы пытаемся обьяснить бестолковому миру программистов, что почем, а последнее время даже открыли сайт - http://www.microsoft-watch.com, и бизнес, конечно, с него крутим - мы же американцы! Сайт вообще-то больше для бизнесменов и IT, но и инженерам там кое-что перепадет!
Время от времени мы командируемся (за счет Ziff Davis) в Рэдмонд или, как в этот раз, на TechEd, и беседуем, все назначая предварительно, понятно, с видными деятелями партии и правительства. Потом мы это обобщаем в гостинице. ( А прикиньте, какие гостиницы в Сан-Диего! - http://arestravel.com/33/-/city/section/g53101 ), литературно редактируем и срочно посылаем новый материал в редакцию. Мы же ведь журналисты!
В этом раз просто слухами мы не ограничились, а конспектировали сказанное о managed/unmanaged transition.Вот, представляю, возврашается наша MJF в свой номер.Ну, горячая ванна, конечно, день тяжелый прошел и садится редактировать. А куда ж денешься? Ziff Davis зарплату даром платить не будет.
И выходят из-под нашего пера такие тайны, о кот. еще не знал мир.
Пойдите, потом, "читатели" разберитесь, что там осталось от managed, a что от unmanaged. И так почти 20 лет! Как копеечка.
комментарии: 0 понравилось! вверх^ к полной версии
FAQ : Как создается BizTalk assembly? 30-05-2004 19:43


BizTalk 2004 не имеет собственного компилятора. Не так много людей на земном шаре, кроме Mr. Erik Meijer (http://research.microsoft.com/~emeijer/) со товарищи, знает, какая участь постигнет Xen(X#), а ведь он и должен был быть lingua franca для BizTalk. Xen умеет манипулировать внешними документами и таблицами, как встроенными языковыми элементами.
Но пока Xen сам по себе, а BTS - сам по себе.
BTS пользуется XLANG/s. Этот язык никакого отношения к Xen не имеет, а служит, в основном, для "совмевстимости" с BPEL. Языковые конструкции XLANG/s, помеченные атрибутом BPELExportable, могут ттрансформироваться в BPEL (точнее в BPEL4WS). Сам по себе этот атрибут применим к классам, но я еще нигде не видел, чтобы он ставился в месте, отличном от service.
Вот только так:
[Microsoft.XLANGs.BaseTypes.BPELExportable(true)]
internal service xlang_orch.
В любом случае, XLANG/s - они же orchestrations - "компилируются" в C#.То же самое происходит со schemas, maps, custom functoids etc.К ним добаляется autogenerated AssemblyInfo.cs и бэтчи. Все это передается на csc (C# compliler) и так наз. "BTS assembly" готов. С кухней этого процесса можно познакомиться поближе, посетив BizTalk Server 2004 File Dump Utility Page
- http://www.gotdotnet.com/Community/UserSamples/Det...a5-3c3d-4a97-a762-0825daf15ab0.
BtsAsmExt.dll служит своего рода браузером для BTS assemblies. Ее нужно просто зарегестрировать, как обычный COM server - regsvr32.В бета, если не ошибаюсь, она регистрировалась при установке. Но эта утилита не просто просматривает GAC - всю информацию и о самих assemblies, и об их содержимом, она берет из базы. Отсюда понятно, что без "deploy" ваш assembly, как BTS assembly, никто не признает. :)

комментарии: 0 понравилось! вверх^ к полной версии
FAQ : Что такое BizTalk assembly? :) 30-05-2004 19:29


Это assembly с атрибутом BizTalkAssemblyAttribute(). Вот так, например (в autogenerated AssemblyInfo.cs )
[assembly: Microsoft.XLANGs.BaseTypes.BizTalkAssemblyAttribute()] :)
А вот как можно проверить, собран ли assembly с этим аттрибутом :

public bool IsBizTalkAssembly(Assembly assm)
{

Type type = Type.GetType("Microsoft.XLANGs.BaseTypes.BizTalkAssemblyAttribute");

return assm.IsDefined(type, true);

//foreach (Attribute attr in Attribute.GetCustomAttributes(assm))

//{

// if (attr.ToString() == "Microsoft.XLANGs.BaseTypes.BizTalkAssemblyAttribute")

// return true;

//}

//return false;


}

}
комментарии: 0 понравилось! вверх^ к полной версии
UDDI and WS-Inspection relations 23-05-2004 03:12


Like the business cards and the directory assistance systems, the UDDI and WS-Inspection specifications address different sets of issues in the discovery problem space, and are characterized by different sets of trade-offs. UDDI provides a high degree of functionality, but it comes at a cost of increased complexity. The WS-Inspection specification adopts a lower level of functionality in order to maintain a low overhead. In this light, the two specifications should be viewed as complementary technologies, to be used either together or separately depending upon the situation. For example, a UDDI repository could be populated based upon the results found when performing a "Web crawl" for WS-Inspection documents. Likewise, a UDDI repository may itself be discovered when a requester retrieves a WS-Inspection document which references an entry in the repository. In environments where the advanced functionality afforded by UDDI is not required and where constraints do not allow for its deployment, the WS-Inspection mechanism may provide all of the capabilities which are needed. In situations where data needs to be centrally managed, a UDDI solution alone may provide the best fit. The UDDI and WS-Inspection specifications should not be viewed as providing competing mechanisms, any more than business cards and directory assistance services are viewed as competing to disseminate personal information.

комментарии: 0 понравилось! вверх^ к полной версии
Namespaces in XPath queries 22-05-2004 21:16


Generally XPath location steps are completely unaware of namespaces.
Thus, given the following XML


Martin Iden
Threodor Drizer


these XPath expressions "/book" or "//book" do not return nothing.

комментарии: 0 понравилось! вверх^ к полной версии
ASP.NET file extensions mapping 16-05-2004 18:55


IIS .asmx requests are routed by default to the WebServiceHandlerFactory assembly, as specified in machine.config. The following excert from machine.config embodies this routing
<httphandlers>
<add verb="*" path="*.asmx" type="System.Web.Services.Protocols.WebServiceHandlerFactory, System.Web.Services, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"></add>
</httphandlers>

Thereby, normal Web service does not require page separation to CS file and asmx file pointing to the source, as VS separation. All your code may be placed in the single asmx file like
<@WebService Language="c#" class="Foo.bar" %>
using System;
using System.Web.Services;

namespace Foo
{
[WebService(Namespace="urn:...")]
public class bar
{
[WebMethod]
SayHello()
{
}
}


At application level you can easely repalce this routing : insert the following in the web.config


.
After this ASP.NET will response to your reguest for asmx page with
"This type of page is not served." message. This message steams from HttpForbiddenHandler that actually formats the HTTP response. How?
HttpForbiddenHandler implements IHttpHandler interface overriding its methos as follow:
public void ProcessRequest(HttpContext context)
{
PerfCounters.IncrementCounter(AppPerfCounter.REQUESTS_NOT_FOUND);
throw new HttpException(403, HttpRuntime.FormatResourceString("Path_forbidden", context.Request.Path));
}
public bool IsReusable
{
get { return true; }
}
(The code restored with help of Lutz Roeder's .NET Reflector - http://www.aisto.com/roeder/dotnet/)

If you want to implement your own http handlers - do the same : inherit from IHttpHandler and provide the impelemantation for ProcessRequest() method.

The ultimate goal of HttpHanlder's ProcessRequest() method is to render the markup whatever the way it desired. It is possible to achive this goal by "manual" rendering like this:
public void ProcessRequest(HttpContext context)
{
context.Response("Hello");
}
It is possible to render the markup by programmatically creating Web controls and using RenderControl() method like this:
public void ProcessRequest(HttpContext context)
{
Panel p = new Panel();

Label lbl = new Label();
lbl.Text = "Hello";
p.Controls.Add(lbl);

// render the Panel Control
StringWriter sw = new StringWriter();
HtmlTextWriter writer = new HtmlTextWriter();
p.RenderControl();

// Emit the rendered HTML
context.Response.Write(sw.ToString());
}

Where HTTP handlers may be useful in responding to requests for specific resources, a handler factory makes it possible to intercept a request, perform some pre-processing on the request, and then following a factory pattern, create the handler for the resource.

For example, handler factory may log the client's address into server-based DB and after that follow Page-handler request using the fact, that System.Web.UI.Page class actually implements IHttpHandler and as so may serve as normal Http handler for aspx pages.

For example : assuming the following web.config configuration




consider the code

public class HitLogger : IHttpHandlerFactory
{
public IHttpHandler GetHandler(HttpContext context, string requestType,
string url, string pathTranslated)
{
Object handler = null;

try
{
//
// Perform DB Logging here...
//

string filename = url.Substring(url.LastIndexOf('/')+1);
string ext = filename.Substring(filename.LastIndexOf('.')+1);
if( ext == "aspx" )
{
return System.Web.UI.PageParser.GetCompiledPageInstance
(url, pathTranslated, context);
}
else if( ext == "asmx" )
{
System.Web.Services.Protocols.WebServiceHandlerFactory fact =
new System.Web.Services.Protocols.WebServiceHandlerFactory();
}
else
{
throw new HttpException("Unable to process extension *." + ext);
}
}
catch(Exception ex)
{
throw new HttpException("HitLogger", ex);
}

return (IHttpHandler)handler;

}
}

комментарии: 0 понравилось! вверх^ к полной версии
Extending VS : Wizards 13-05-2004 14:39


MS VS Wizard is .NET assembly. Because Studio can speak out only COM, such an assembly should be registered for COM interop. The simplest way to do so is to enable the corresponding option under Project node : Configuration Properties - Build - Register for COM Interop. With this options turned on, CLSID is generated and written into the registry as regular COM server.
To introduce the created wizard to Development Environment, two text files should be added to VS installation directories. Assuming C#, the first file with VSDir extention is created inder VC#CSharpProjects directory.
It contains the reference to wizard-launching file and various info about the wizard appereance in VS. The structre of this file is defined in
http://msdn.microsoft.com/library/default.asp?url=...ntro7/html/vxconvsdirfiles.asp
комментарии: 0 понравилось! вверх^ к полной версии
BTS 2004 Wish List 02-05-2004 02:27


1). Integrated ochestration debugger in MS VS.
2). View orchestaration state during debugging.
2). Why orchestation WSDL can not be exposed as Web Service directly and there is a orchestation publishing mechanism, that generates the proxy for direct submit?

TODO List:
1). X# compiler - relations to xsd.exe and schemas used to code generation.
2). What BTS 2004 is doing with WMI?

комментарии: 0 понравилось! вверх^ к полной версии
Sending E-Mail using BTS 2004 19-04-2004 19:13


1).Assembler component of XMLTransmit pipeline cann't deal with the message formatted as HTML content type. Always use PassThruTransmit pipeline to send out HTML Email messages. All pre-defined pipelines use first message part as a body of message. Thus, you need to define new message in the orchestation of a type that supports custom format (RawString for example) and sent it to PassThruTransmit.
2). In the case you need only attachement - produce new pipeline with MIME/SMIME encoder component and redefine 'Send body part as attachement' on the this component. For InfoPath you need to add XML assembler component to created pipeline. Set its 'Add processing instructions' property to 'Create New' and 'Add processing instruction text' set to the InfoPath specific PI. like
<?mso-infoPathSolution solutionVersion="1.0.0.38" productVersion="11.6250.6250" PIVersion="1.0.0.0" href="http://frameserver/leumi/ApprovalForm.xsn" ?><?mso-application progid="InfoPath.Document"?>
3). In the case you need both HTML formatting and attachement, you need to define multi-part message in the orchestration.
комментарии: 0 понравилось! вверх^ к полной версии
Installing BAS - Part 2. 27-03-2004 03:17


My advice is to install BAS on dedicated SPS server. It's also possible to create additional virtual server for SPS and upgrade it to SharePoint extensions. However, NEVER install BAS on existing IIS with FrontPage extensions. By doing so, you may loose your existing IIS content. (for example, in the case, you do not carefully followed the steps described in Part1.)
комментарии: 0 понравилось! вверх^ к полной версии
Общие замечания о программировании в BTS 2004 25-03-2004 01:26


1). Отдайте себе отчет в том, что вы собираетесь делать :
Для того, чтобы представить себе общую картину возможностей BTS 2004 (я не говорю - стать программистом BTS), вам понадобится около месяца ежедневных упражнений. Это для человека уже хорошо знакомого с .NET и имеющего
a). постоянный доступ к серверу с мин.(1) 1/2 Gb памяти,
b). на кот. установлено Windows2003, SQLServer2000 +SP3. OLAP + SP3, IIS с XML support (MSXML4 SP2), Visual Studio 2003 с C#, SharePoint Portal Server.
c). Вы должны быть a-priori не просто быть знакомым, а хорошо владеть понятиями XMLSchema(XSD), Web-Services (понимая WSDL) и ASP.NET.
d). Если вы знакомы с предыдущей версией BTS, вам надо забыть ее, как можно быстрее.
2). Продукт (RTM) официально вышел 4-го марта 2004 года. Это означает, что почти никакой документации на него пока не существует. Вы должны быть готовы перерыть море сайтов и newsgroups в поисках того, что вам может понадобиться.Вот несколько полезных линков на сегодня
http://blogs.msdn.com/scottwoo
http://www.microsoft.com/BizTalk/community/newsgroups/default.asp
http://www.microsoft.com/belux/nl/msdn/community/columns/claessens/intro_bts2004.mspx
http://www.gotdotnet.com/team/xml_wsspecs/xlang-c/default.htm


комментарии: 0 понравилось! вверх^ к полной версии
Installing BAS 25-03-2004 01:11


BAS is available only under Win2003 and depends on the SharePoint Services (SPS). You even cannot check it for the installation if SPS was not already installed. So first of all, you need to obtain the SPS. SPS is not the same thing as SharePoint Portal Server and it is available for free download from MS site.
Once you downloaded and installed it (or you already have SharePoint Portal Server), you can to select BAS for the installation, but before doing so, keep in mind that BAS primary site will be installed on the virtual server with applied SPS extensions. So you you need to configure your IIS before continuing BAS installation.
If you already running the IIS with FrontPage Server Extensions, this procedure is a bit complex:
1). backup your server : run smigrate.exe from C:Program FilesCommon FilesMicrosoft Sharedweb server extensions60BIN like
smigrate -w http://localhost -f backup.fwp.
This may take several hours depending on size of the sites.
2). remote existing FPExtension : run owsadm.exe from C:Program FilesCommon FilesMicrosoft Sharedweb server extensions50bin like
owsadm.exe -o fulluninstall -p (usually 80)
3). extend your virtual server to SPS extension : launch your SPS Admin site, navigate to "extend virtual server", select your server
- When using Windows SharePoint Services with SharePoint Portal Server, re-use the MSSharePointPortalServerAppPool application pool created by SharePoint Portal Server. This application pool can be managed by clicking on Configure Server Farm Account Settings in SharePoint Portal Server Central Administration.
3a). Alternatively, you can use stsadm.exe from C:Program FilesCommon FilesMicrosoft Sharedweb server extensions60BIN directory
4). restore your IIS site configuration from the step 1). : run smigrate.exe once again noe specifying -r option like
smigrate.exe - r -w http://localhost -f backup.fwp
This also may take several hours depending on size of the sites.
IF YOU WERE HAPPY TO ACCOMPLISH ALL OF THIS, YOU CAN CONTINUE BAS CONFIGURATION! :)

комментарии: 0 понравилось! вверх^ к полной версии
BR 24-03-2004 01:36


1). Vocabulary Definition Wizard has no option to select the schema from the assembly. Only files XSD schemas are supported. Thus, if you forget to append the assembly name to the schema selected from "XML Document Element or Attribute" page - "Document type", you have no parameters to pass to "Call Rules" shape within the orchestration.
2). Only one of the published policies may (logically) be active. However, it is possible to deploy more that one version of the same(!) policies. Why?
комментарии: 0 понравилось! вверх^ к полной версии
Access to the published orchestrations ( BTS 2004) 22-03-2004 14:39


BTS 2004 uses integrated security to access its DBs. Thus, there is no way to grant the access to the published orchestations from ASPX applications. (Note, that the actually the generated proxy is that invokes the orchestartion, but the proxy itself, after all, is usual ASPX). Under Win2003, however, there is a work arround:
1). Create IIS Application Pool that will run under the account of BTS Service.
2). Move the proxy ASPX application under that pool.
The client ASPX will remain unchanged.
комментарии: 0 понравилось! вверх^ к полной версии
Publishing BTS 2004 Orchestations 21-03-2004 18:42


When you creating the orchestation intended for publishing, keep in mind the following constraints:
a). Only orchestartions with at least one public receive port may be published, so when creating the port, be sure to select "Public" access restrictions (on the "Select Port Type" page of "Port Configuration Wizard").
b). Once the port is created, it is impossible to change its access restrictions later. (Why?)
c). Web Publishing Wizard will prompt you for enable anonimous access to the proxy being created. This is a access to aspx proxy application - not for accessing the orchestartion itself. Grant the access to the anonimous user - it's still unvisible to you orchesration.

комментарии: 0 понравилось! вверх^ к полной версии