Is there active development going on IBatis.Net DataMapper? Do they have version for .Net 3.5. I saw lots of activity on iBatis Java DataMapper as they are planning to release iBatis3 with annotation support. What is the status of its .Net counterpart?
In May/June 2010, the iBatis team left Apache and continued under a new name and a new home. You can read the announcement on the old page.
iBatis is now called MyBatis and the repositories (Java and .net) are hosted on Google Code.
new website
new mailing list
Google Code site
There is no official .net release yet:
This is the core data mapping framework for .NET. Please be patient. We're updating the release for the MyBatis.NET Data Access Framework. Until it's ready, we recommend building from source.
...but at least there is happening something in the source code.
Related
I have some legacy .NET code that I would like to wrap with an API.
The code is a mixture of ASP.NET Webforms and .NET Framework 4.0
I'm hoping to use the new ASP.NET Core Web API and have created a new solution based on this framework and added the legacy code as existing projects.
Everything builds OK but when I try and call some of the legacy code I get the following error:
System.TypeInitializationException occurred HResult=0x80131534
Message=The type initializer for 'TreeManager' threw an exception.
Source=
Inner Exception 1: FileNotFoundException: Could not load file or
assembly 'System.Web.Extensions, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35'. The system cannot find the file
specified.
This is the code I call:
TreeManager.LoadEvent += LoadTree;
public class TreeManager
{
...
public static event EventHandler<LoadEventArgs> LoadEvent;
...
}
I tried updating the legacy code to .NET 4.5.2 but get the same error.
I wrapped the legacy code with an API using ASP.NET MVC 4 API 2 and all worked well.
Is it possible to do this and, if so, what changes do I need to make?
First, you can choose to target either .NET Core or the full framework with a ASP.NET Core app. Just because it's "Core" doesn't mean you have to use .NET Core with it. If you're utilizing legacy APIs, you may be forced to run on the full framework.
If you need or simply want to use .NET Core, so that the app can be deployed outside of a Windows environment, then you'll need to migrate any APIs that aren't supported to alternative APIs or potentially rewrite functionality if no alternative API exists.
.NET Core 2.0 supports .NET Standard 2.0, which has a very large API footprint. Because of this, Microsoft opened up compatibility with legacy .NET Framework libraries and packages. However, no guarantees are made that you can fully utilize those libraries and packages. Just because you can add the dependency doesn't mean you can utilize all the APIs. That's likely what you're running into here. This particular set of APIs has a dependency on System.Web, which is not a part of .NET Core.
Recently, Microsoft has released some tools to make migration scenarios like this easier. First, there's the .NET API Analyzer, a NuGet package which will add Intellisense callouts to API calls that are not compatible with various targets. This will help you track down code that needs to be changed, and alert you when you're writing new code, that you need to do things in a different way than you might be used to.
Second, there's the Windows Compatibility Pack for .NET Core, another NuGet package that shims in support for a lot of older Windows-only APIs from the full framework. This can give you a bit of breathing room during your migration, reducing the amount if things you need to change, somewhat. Though, you are still encouraged to switch out this code eventually as well, eventually weaning your application off of the dependency altogether.
Finally, if none of this helps, you may simply have to find an alternative. That might require installing a third-party NuGet and rewriting some code to work with that instead of what you were using before.
No one ever claimed migrating was easy; it's always an uphill battle. If you don't have the bandwidth to do it now, simply target the full framework and call it a day. Otherwise, dig in and tackle it as best you can.
I am trying to send raw ascii data to a CUPS printer (raw queue) in a .NET application. My first thought was to use the classes PrintServer/PrintQueue/PrintQueueJob but running my application throws an FileNotFoundException for System.Printing.dll. If I understand the pages Mono Status and Mono System.Printing in 4.0 vs MS.NET 4.5 correct the System.Printing.dll and the classes are available in Mono. Am I wrong?
That page is almost now useless, as Mono project migrates to a GitHub Markdown based new site,
http://www.mono-project.com/docs/about-mono/compatibility/
System.Printing from .NET Framework uses too many Windows only APIs, so it does not make sense to bring it to Mono/Linux.
Another way to check compatibility is to directly check Mono source code,
https://github.com/mono/mono/tree/master/mcs/class
You can see there is no System.Printing folder.
I have a client needing to move from XI R2 to 4.1. I need to pick and choose basically 5 thousand reports, and change what folder they will be in. I will have to actually move the report from one folder to another. Then the content migration will be easy. We need to make new folders to account for new AD groups. How do I get around having to do this manually? Can I just do it programmatically or in a batch process?
You can create folders and move content using the SDK. In XI r2 you have the choice between the Java, .NET and COM (VB/VBA/VBScript) SDK to perform these actions.
You'll need the SAP BusinessObjects Enterprise Platform SDK for this. Here are a few links you might find helpful:
SAP BusinessObjects BI 3.x and Lower - Developer SDK Library
XIr2 JavaDocs (Zip file)
.NET API Reference
Object Model Diagrams (Java)
Developer Guide (Java / .NET)
Sample Code (Java / .NET)
Where you can find additional information:
.NET SDK Application Development forum at SCN
Java SDK Application Development forum at SCN
SDK forum at the BusinessObjects Board (unofficial BOBJ forum)
Creating folders and moving content around are quite basic actions, so most of the documentation you'll find (I can only speak for the Java SDK from experience) will largely apply to XI r2, even though it wasn't written for that specific version.
I am in the process of creating a lightweight application in vb.NET, and was wondering if it is possible to create an application that uses some of the dll's within the .NET 2.0 framework, without actually using the framework itself.
For instance, can I take the dlls from the .NET directory that the app will reference (and only those dlls that it references), put them into a folder inside the app's directory, and then just change the reference path to that new location? That way, when the app is installed on pc's without .net framework installed, the dlls can just be zipped and copied over to the newly installed app directory.
This may all sound a bit confusing, just let me know if you need any more info.
It is quite unlikely that you'll be able to do that.
There is this thing called .net framework client profile for creating lightweight .net apps that do not need the whole framework but you still need to have that installed.
I would recommend using something like Delphi if you need a standalone exe that does not depend on anything.
There is concept of Client Profile in .NET 3.5 and .NET 4.
That is subset of .NET, smallest necessary fraction of .NET that client must have in order to be able to run .NET applications targeting client profile.
There is more detailed overview of the features you may use when targeting client profile.
Unless you move to .Net 4 or above, you need full framework on the client computers. Having said that, which OS are you targeting? Newer MS OS often come with .Net framework installed already.
I've written a really simple launcher app for my team at work to use. However I wrote it in VB.net Express 2010 so its using .NET 4. I need it to be compatible with older machines that are using .NET 2 or maybe 2.5.
I don't want to force upgrading to a higher .net if its not needed. And in some cases we work on old machines that can't be upgraded. My app is really simple and I'll post the code if needed.
Please note, I am still a noob, my coding is ugly, and this is a quick and dirty tool.
You're looking for the Target Framework dropdown in Project Properties.