学习Duwamish7的MSDN说明及相关技术策略

在.NET中利用FORMULA ONE实现动态报表技术(一) Ø         在.NET中利用FORMULA ONE实现动态报表技术(一)          相信对大家Formula One (简称F1) 不会太陌生,它是一个优秀第三方报表制作控件,本人以前一直使用它与PB结合制作动态报表。现在有一.NET项目,有大量报表要实现,那么利用原先的FORMULA ONE制作的报表技术能否在.NET中继续延用呢? 经过几天的摸索终于把原来利用Formu 阅读详情
(一).MSDN对Duwamish7的说明
   Duwamish 7.0 是由 MSDN 开发的通用 Duwamish 系列应用程序的功能性端口(完全使用 .NET 技术)。尽管示例本身是围绕虚拟网上书店建立的,但本示例主要关注的方面却是性能,与从 Windows DNA 到 .NET 开发人员平台的移植技术相关的问题,设计模式,以及分布式计算环境中的现实部署方案。从功能上,它是完整的模式实现,但没有充分实现具体的履行过程(即信用卡帐户减值、检查存货和交货)。
 (二).Duwamsih7中相关技术策略
   1..NET 远程处理
      a.Duwamish7在信道(http,tcp)与格式化(binary,soap)组合中选择http/soap组合,这是性能和安全性方面的一个折中方案。
      b.Duwamsih7支持分布式布署,允许把业务外观、业务规则层数据访问层与Web层分开布署,因此Web层要远程调用业务外观层
    进行处理。通过应用程序服务器上的 Web.Config 文件,和Web 服务器上的 remotingclient.cfg 文件,当应用程序启动并执行    Global.asax 的 Application_OnStart 函数时,Application_OnStart 函数调用 System.Runtime.Remoting.RemotingConfiguration.Configure 方法,以根据远程处理客户端配置文件进行远程处理配置.
  Microsoft .NET 远程处理:技术概述
  ms-help://MS.MSDNQTR.2003FEB.2052/dntaloc/html/hawkremoting.htm
  介绍 Microsoft .NET 远程处理框架
  ms-help://MS.MSDNQTR.2003FEB.2052/dntaloc/html/remoting.htm
    2.数据访问策略
     a.将处理转移到数据而不是将数据转移到处理。(存储过程实现所有数据处理)
       b.在一个方法调用中将所有数据传递回客户端。 (FillxxxxData())
       c.将数据库资源保留最短的时间。
    3.错误处理
     a.返回代码:在最基本的级别上 Duwamish 7.0 使用返回代码报告状态情况。
        b.先决条件:Duwamish 7.0 在公共方法中测试先决条件。
        c.后置条件:Duwamish 7.0 检查从函数的退出是否适当。Duwamish7.ApplicationAssert.CheckCondition 方法生成调用堆栈、记录错误信息并引发应用程序异常。
        d.结构化异常处理:
        Duwamish 7.0 使用 C# 中的 try-catch-finally 语句:
          处理函数无法履行其职能的情况。
          捕捉预期的错误条件。
          确保发生预料外异常情况后的清理。
    4.安全策略
     Duwamish的安全策略MS承认:不要在生产环境中使用 Duwamish 7.0 示例。它是一个示例,因此在设计上并不十分安全。
    如果原封不动地使用该示例,则可能会给您的产品环境带来不必要的安全风险。
      推荐的安全策略:
      a.用于限制程序集使用的代码访问安全性
      b.分布式方案
      c.基于窗体的安全性
      d.密码凭据保护
      e.使用基于角色的安全性向用户授权
      f.Windows 身份验证和 SQL Server
     5.用户服务
      Duwamsih7中充分利用Web 窗体和服务器控件、缓存、会话状态、视图状态、安全性、XML Web services等为用户提供优质、安全的用户服务。
在.NET中调用DataWindow操作数据库                           在.NET中调用DataWindow操作数据库       Sybase在2004/1/19日推出了Pb 10 beta1版本,其中包含DataWindow.NET 1.0,这真是一个另人兴奋的消息! 在PB市场日益萎缩的今天,在.NET大行其道的今天Sybase公司终于推出了DataWindow.NET,它支持DataWindow绝大部份原 阅读详情

相关推荐

MSDN中文帮助手册

本手册是真正的中文开发手册,来自于官网,适合初学者,开发人员查询使用

MSDN中文帮助文档

相信大家都会有这么一种感觉,阅读英文msdn文档的时候,会有一种朦胧的美感,哈哈,那么怎么把搜到的英文文档变为中文呢? 1、使用浏览器插件,比如有道翻译之类的,缺点:很有可能翻译不出来或者一等就是半天 2、神器,哈哈,今天学的: 首先,英文文档地址如下: http://msdn.microsoft.com/en-us/library/system.data.datarow(v=vs.110).as...

ciscomonkey的博客 3万+

PCout(n) -- STM32F103RCT6 位带操作

位带操作,sys.h,PCout,PAout,PAout

weixin_50212044的博客 4021

MSDN的使用方法(扫盲)

MSDN有什么用? 使用方法

低调的嚣张 1万+

Java写项目前的准备工作指南(技术栈选择 环境搭建和工具配置 项目结构设计与模块划分)

在开始编写一个 Java 项目之前,做好充分的准备工作是至关重要的。很多初学者可能在没有清晰规划的情况下就开始编写代码,导致项目开发进度缓慢、结构混乱,甚至最终无法按预期完成。而事实上,项目的成功不仅仅取决于编码能力,还包括项目初期的规划和准备。准备工作是确保项目顺利进行的基础,它包括技术选型、环境搭建、需求分析、团队协作及项目管理等多个方面。通过这些准备,我们可以确保项目的开发不仅高效而且有可维护性,最终能交付出高质量的代码。在项目开发过程中,异常处理是非常关键的一部分。

eternal__day的博客 1188

别光看教程了!手把手带你用STM32F103C8T6最小系统板点亮第一个LED(附完整电路图)

本文详细介绍了如何使用STM32F103C8T6最小系统板点亮第一个LED,从硬件连接到软件开发环境搭建,再到编写和下载程序,手把手教你完成STM32入门的第一步。适合初学者快速上手STM32开发,附完整电路图和代码示例。

weixin_28678831的博客 195

关于C#中调用Beep()

在C#编写程序时,想在弹出提示窗口时Beep(),一下,发现竟然没有Beep()功能。在网上查了一下,发现确实如此。FCL中对多煤体的支持非常的弱。  解决方法一:可以调用Win32的API:  [System.Runtime.InteropServices.DllImport("user32.dll")]  public static extern bool MessageBeep(ui

Dibov的专栏 1万+

SAP MIGO屏幕增强的具体实施步骤介绍(SE19:MB_MIGO_BADI) <转载>

1.MIGO抬头屏幕增强具体增强实施步骤1.1.创建存储抬头客制化数据的增强表1.2.创建增强结构1.3.创建函数组ZMM_MIGO1.3.1.定义全局变量1.3.2.创建数据处理函数1.4.创建字屏幕9001屏幕PBOendif.endloop.1.5.实施新BADI增强SE19创建BADI实施双击实施类ZCL_MIGO_EN_01exportingendif.endmethod.endif.endif.exportingendmethod.

qq_55488207的博客 4512

Duwamish7学习笔记(-)

 Duwamish作为Vs.NET自带的例子,一定代表着MS想向开发人员传递的思想和开发技巧,记得以前学习PB时没有查看PB的例子程序,等走过很多弯路再看到PB的例程时发现,原来好的冥思苦想的方法、技巧,就在自已机器上安静的躺着呢! 一直想较仔细一点的学习研究一下Duwamish,但总是没有机会,现在系统上线,总算轻松一点而有点时间来和她来个亲密接触了:)  Duwamish解决方案总共有6个项目

Dibov的专栏 9739

推荐系统(1):推荐系统评测

对于可以离线优化的指标,我个人的看法是应该在给定覆盖率、多样性、新颖性等限制条件下,尽量优化预测准确度。用一个数学公式表达,离线实验的优化目标是:最大化预测准确度使得 覆盖率 > A多样性 > B新颖性 > C其中,A、B、C的取值应该视不同的应用而定。

数据不会骗人 2527

15、z/OS 优化配置与迁移实践

本文详细探讨了z/OS环境的优化配置与迁移实践,涵盖DASD存储库管理、用户目录更新、环境更新意义以及不同场景下的迁移案例。通过单笔记本系统和服务器级机器的实例,展示了迁移流程和关键要点,包括DASD文件创建、设备映射更新、系统重启初始化以及数据备份等步骤。文章还总结了迁移过程中的注意事项,并展望了未来z/OS优化的发展趋势,为z/OS系统的稳定运行和高效管理提供了实用指导。

zzz56的博客 129

关于Unicode字符到GB2312的转换

       在利用Reflector进行程序集反编译查看时,经常可以看到用Unicode编码的原中文字符串,如:this.str = "/u6570/u636e/u5e93/u64cd/u4f5c/u95ee/u9898/uff0c/u8bf7/u60a8/u91cd/u65b0/u767b/u5f55/uff01";,其实源代码中是:this.mvarError = "数据库操作问题,请您重新

Dibov的专栏 5301

Allegro如何设置走线自动删除重复走线操作指导

Allegro如何设置走线是自动删除重复走线操作指导在PCB布线的时候,点到点需要重复走一段线的时候,希望原来的线段自动被删除,Allegro设计的时候支持这个操作如下图,重复走中间的线段的时候,希望下方的走线自动删除具体操作如下This section is describe what the function allegro have ,helpfully could let user know more about allegroAllegro Design and Analysis includes

weixin_54787054的博客 4499

Duwamish7学习笔记(二)

SystemFrameWork项目  SystemFrameWork项目是一个能直接移植到别的应该程序的项目,可以不修改或很少的修改代码而直接使用。  项目主要为3个类。   1.ApplicationConfiguration类    此类为应用级的配置类,实现IConfigurationSectionHandler接口。与前面讲的DuwamishConfiguration类实现方法类同。主要方

Dibov的专栏 2436

【Python基础】FastAPI 从入门到项目实战操作详解

【Python基础】FastAPI从入门到使用实战操作详解

congge_study的博客 445

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

在.NET中利用FORMULA ONE实现动态报表技术(三)

Ø         在.NET中利用FORMULA ONE实现动态报表技术(三) 5. 模板保存进入数据库后,打开此模板管理模块时会列出所有已经存在的模板名,选择模板名便要求从当前数据库中读出模板于F1控件中,以便显示和修改。可以组合框控件的SelectedIndexChanged事件中进行脚本的编写。private void comboTemplate_SelectedIndexCh

Dibov的专栏 2069

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Duwamish7学习笔记(五)

BusinessFacade项目   业务外观层封装了3个类CustomerSystem,OrderSystem,ProductSystem,类中直接调用数据访问层和业务逻辑层类的方法与属性提供对Web层的接口。有意思是的每个类结尾均以System命名。客户系统?订单系统?产品系统? 业务外观层中3个类均继承自MarshalByRefObject类,来支持远程处理。MSDN中关于MarshalBy

Dibov的专栏 2025

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

在.NET中利用FORMULA ONE实现动态报表技术(二)

Ø         在.NET中利用FORMULA ONE实现动态报表技术(二) 4. 读入的模板用二进制流的形式存入数据库中,F1提供一个WriteToBlobEx(),和WriteToBlob()方法,帮助文档中定义的语法为:phBlob = F1Book1.WriteToBlobEx (nReservedBytes)本来可以很轻松的把模板文件写入二进制流,但转换了.NET可调

Dibov的专栏 1980

Duwamish7学习笔记(四)

 BusinessRules项目 1.Customer类   长见识了!在《Duwamish7学习笔记(三)》中还在想业务逻辑层写些什么东西。   校验,还是校验!每一行,每一列,包括类型和长度,想想自已在项目的校验,真的有点汗颜!   //----------------------------------------------------------------    // Function

Dibov的专栏 1886

Duwamish7学习笔记(六)

 Web项目  Web项目为Duwamish系统的业务展示层,为客户提供对应用程序的访问界面。  1.PageBase.cs为每个页面的基类,主要是获取页面的URL信息,从Session中获取或设置Customer和Cart信息,另外重写了Web.UI.Page的OnError()事件。捕获页面错误,调用ApplicationLog.WriteError()方法写入日志。  2.ModualBas

Dibov的专栏 1832

试用NDoc生成开发文档

     完成了工单实施的编码,但设计文档并没实时更新,现在领导说要设计文档,天啊!那么多的类,函数、属性说明都要自已写?? 前两天正好看了《每个 .net 开发人员现在应该下载的十种必备工具》中有个NDoc生成文档,何不试试?? 下载安装完,会直接在开始-->程序下添加一执行文件链接:nDoc,打开,初始界面如下: 弄了半天也不知道怎么加载程序集,原来是在生成程序集时要生成对应的XML文件才

Dibov的专栏 1819

Duwamish7学习笔记(七)

总结:  终于把Duwamish六个项目均较仔细的学习了一遍,感觉还是收获颇多!:)看大师出手的代码,真如品一杯美味香浓的咖啡,那种感觉真的好极了,让人赞不绝口。  1.代码写得非常简练、工整。  2.代码注释写得非常清楚、到位。  3.系统结构非常好,校验、控制写得非常的严格,使系统具有非常好的健壮性、安全性、可扩展性。  4.系统中异常处理控制得很好,不像平常我们的项目中,try,catch,

Dibov的专栏 1817

微软技术日报 11-09:.NET 8 与 9 明日同时停止支持,注册表编辑器出了 WinUI 3 版

今天这四条消息的共同点是收口。.NET 8 和 9 的支持期到点,注册表编辑器的新界面只放在仓库里给人看,GitHub 把一类危险触发器按住默认,微软在安全报告里把防线从地址黑名单挪到行为。收口并不等于关门。.NET 10 还在支持期里,被按住的触发器可以用策略按文件放回来,实验室里的样例随时可能变成产品。区别在于这些动作要有人签字,不再是默认开着。如果今天只做一件事,去看一眼构建机上的 .NET 版本。明天之后,8 和 9 的漏洞补丁不会再来了。

海盗Sharp的博客 322
上一篇: Duwamish7学习笔记(七)
下一篇: DataWindow .NET 1.5的关键新特性
dibov
博客等级 码龄25年 5粉丝 16原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值