.NET

Syndicate content 15 

Integrating Cache with .net may be difficult, as we need to know both technologies and tools involved. Let’s follow the simplest possible example and see the pitfalls lurking on our way.

 

1. Creating .Net Assembly

 

.Net assembly is unit that contains compiled code and other resources.

Let’s create the simplest .Net assembly that will contain the code we want to execute.

 

We will use assembly of type Class Library, as we will use classes and their methods contained within. This type of assembly has .dll extension.

Last comment 2 January 2018
+ 4   0 7
915

views

+ 4

rating

Imagine that your .NET project uses the Caché DBMS and you need a fully-functional and reliable authorization system. Writing such a system from scratch would not make much sense, and you will clearly want to use something that already exists in .NET, e.g. ASP.NET Identity. By default, however, this framework supports only its native DBMS – MS SQL. Our task was to create an adaptor that would let us quickly and easily port Identity to the InterSystems Caché DBMS. This work resulted in creation of the ASP.NET Identity Caché Provider.

Last comment 25 January 2017
+ 4   0 3
829

views

+ 4

rating

Recently I came across a very strong statement to the effect that InterSystems.Data.CacheClient.dll library works fast because it does not open a TCP/IP connection, instead it works in the same process as a database. It made me pause for quite some time. Firstly because .Net Managed Provider, which utilises this library, opens TCP/IP connection to the database (and it is stated in the documentation "Using .NET and the ADO.NET Managed Provider with Caché"). And secondly, because as far as I know only eXtreme applications attach themselves to the process.

Last comment 16 January 2017
+ 1   0 5
0

answers

785

views

+ 1

rating

InterSystems states that Caché supports at least three data models – relational, object and hierarchical (globals). On can work with data presented in relational model in a program written on C# the same way one works with any other relational DB. To work with data presented by object model in C# one needs to use .NET Managed Provider or some kind or ORM. And starting with version 2012.2 one can work directly with globals (or use direct access to hierarchical data) via Caché eXTreme for .NET

Last comment 19 March 2019
+ 4   2 5
579

views

+ 4

rating

Hello,

I'm currently exploring alternatives to CSP/services and ODBC/Sql Maps for access to Caché. I'm not seeing a library which would interest me, so am considering creating one myself.

Does 'CacheConnection' in C# use RPC of some sort, or a defined protocol to communicate with Caché, or does it do so over telnet with scripted commands? I would assume the former. If so, is this a publicly documented protocol that can be implemented by library developers?

Any guidance in this area would be appreciated.

Last answer 6 July 2017 Last comment 6 July 2017
0   0 1
530

views

0

rating

I need to pass an equivalent of .Net Dictionary<string, int> instance from .Net to Caché. In the application, the Caché .Net provider has been used so far, so we came up with passing it as an instance of array of data types. However, the only way to fill the array we are aware of is to use its Add() method which invokes a call to the server instance method of the array for every key-value pair inserted.

Last answer 5 July 2016
0   0 3
0

comments

437

views

0

rating

Hi,

We have created a dll with .Net that generates a MS Word document with a template. The .Net method works, we have tested it with Visual Studio and it generates the document.

But once we have created the dll and embebed it in Ensemble through the Wizard, when we try to execute the method that generates the document, it doesn't work. It doesn't throw us an error, it simply doesn't open the template.

We have seen that MS Word program is opened, but that's all.

Last answer 27 October 2016 Last comment 28 October 2016
0   0 2
380

views

0

rating

I have posted to aid others in diagnosing problem with SSL/TLS connections to superserver port from .NET client executable.

The cache instance this appeared on is quite old - 2011 - so I do not know if Intersystems have added a better error message in a later version

The actual fault was due to the certificate in the %SuperServer SSL/TLS configuration having expired.

The unhelpful message that appeared in the .NET client included the following partial stack trace.

 

0   0 3
0

comments

303

views

0

rating

Microsoft Office has components for using in third party applications: COM Objects for C++ and Interop Assemblies for .Net programming.

Many Cache projects used to include calls to those libraries. However, recently this solution started being problematic.

There are two main reasons - legal and technical. Let’s check the details.

Microsoft technology support

Microsoft is supporting Office Automation only for desktop computing. 

It shall not be used for server computing, as they offer Sharepoint for this scenario. Have a look here:


+ 1   0 1
0

comments

269

views

+ 1

rating

Hi,

We do have a production including a SOAP.OutboundAdapter that make a request to a .NET WCF Service. The response from that service vary in size. When it come to large one, we talk about maybe 8000 records (with 6-8 attributes per record) in xml, the adapter always give a timout. Even if we put a high number of seconds or set -1. After 1 1/2h still nothing get back. It's just standing there and waiting for ever.

Last comment 12 February 2016
0   0 3
0

answers

248

views

0

rating

Does developing a RESTful API in Caché remove the requirement to use the InterSystems.Data.CacheClient.dll and generate proxy classes using the Caché Object Binding Wizard for .NET web development? If anyone has links to sample applications using .NET with Caché and REST Services, I would be grateful if you could share them.

Last answer 19 April 2018 Last comment 20 April 2018
0   0 2
245

views

0

rating

Hello all,

I know it is perhaps too vague question, but anyway:

Do you have experience from running a thick (preferably .NET) application in any of these modes - client installed locally, Terminal Server, Citrix ? Say, there are around 300-400 concurrent users using application.

Can you share your observations / opinions?

 

Thank you!
 

Dan Kutac 

Last answer 6 April 2016
+ 1   0 1
0

comments

224

views

+ 1

rating

   

  The following code in .Net using  CacheObject.dll  version 2016.1.2.206 com library

                  ConnectionString  =  "cn_iptcp:10.56.135.160[1972]:PHDEMO:PHSYSADM:***********" 

                  b = factory.Connect(ConnectionString  )
                  objCacheObject =  factory.Static("CacheObjectConnection")     
                  clist  = factory.GetConnectionList()

  for the above code, b is true and clist is  Local,cn_iptcp:127.0.0.1[1972]: 

Last answer 14 February 2017
0   0 0
0

comments

212

views

0

rating

 

My scenario is:

 

I have a Cache method that

call a REST -> JSON -response  > INSERT/UPDATE the source table of a DeepSee Cube -> Update the Cube only for this change -

I want to view in .NET Application the changes. For that I want that this method should be executed at a defined interval.

Or maybe the solution is a Refresh button in .NET page. is there any way to access a Cache method from .NET?

Any idea how to do it?

 

 

Last answer 8 September 2017
0   0 1
0

comments

189

views

0

rating

I have a main page in .NET where I call a Dashboard created in DeepSee like this:

<iframe src="../..zen?DASHBOARD=NameofDashboardKpi1.dashboard&EMBED=1&CacheUserName=&CachePassword=" 

to display the Dashboard in the .NEt page.

 

My problem is that connection to every Dashboard takes a while, so performance is low.

Any suggestion?

Last answer 2 September 2017 Last comment 25 September 2017
0   0 2
185

views

0

rating

Hi!

I'm trying to connect to one of our Ensemble servers Cache database from a C#-windows form . I'm running the client from my local computer with OS win7.  Using .NET FW ver 4.5.2 in the client.

ODBC local setup using "Intersystem ODBC35"

In this ODBC konfigurationview i can put my userID and password and try a testconnect (or ping). And that run successful.

However, we don't want to leave credentials in the ODBC-configuration it self (open up for anybody to use the source) but instead send it from the klients.

0   0 3
0

answers

0

comments

181

views

0

rating

I ran the below query in three different modes.  Coordinated Universal Time is 5 hours ahead of Eastern Time so there is difference in value from column 1 and column 2 in ODBC, Display mode, but not in Logical Mode. By default the query executes in ODBC mode when we query the data from outside world(via ODBC connection). 

I don't know  why query 2 and query 3 outputs different from query 1.

Query 1. Ran in Logical mode, DATEPART() took in memory stored timestamp data(stored in UTC)

Last answer 23 November 2017 Last comment 24 November 2017
0   0 1
161

views

0

rating

Presenter: Jeff Semmens
Task: Model and access data as objects in .NET without designing the database first
Approach: Use InterSystems Entity Framework
 

Description: Come and experience how you can design your database model in .NET and evolve it over time by leveraging the Entity Framework.

Problem: Current bindings require database-first design. I cannot design my model in .NET.

Solution: The Entity Framework is an object-relational mapping framework that allows data-oriented applications to model and access their data as objects in .NET. Database- first is still supported but will fade away in future releases.

 

Content related to this session, including slides, video and additional learning content can be found here.

0   0 1
0

comments

158

views

0

rating